技术实现 | Apache Doris Binlog 导入设计与实现

本文介绍了Apache Doris的Binlog导入功能,通过解析Mysql的Binlog日志实现数据增量同步。该功能依赖canal,支持多表导入和幂等性,保证数据可靠性。在数据同步过程中,Fe启动canal client订阅数据,按顺序发送stream load任务,并记录消费进度以确保幂等性。宕机后能从断点恢复,避免数据丢失。
摘要由CSDN通过智能技术生成

Binlog 导入是通过获取并解析 Mysql 数据库的 Binlog 日志,增量同步用户在Mysql 数据库的所有更新操作,为 Doris 提供了一种对接 Mysql 数据库的 CDC(Change Data Capture) 功能。

Binlog 导入已在 0.15 版本发布,本文主要介绍的是 Binlog 导入的总体设计与实现思路。

总体架构

Binlog 导入目前需要依赖canal作为中间媒介,让 canal 伪造成一个从节点去获取 Mysql 主节点上的 Binlog 并解析,再由 Doris 去获取 canal 上解析好的数据。

后续 Binlog 导入可支持除了 canal 外的不同数据源。

总体数据流向为:

   多表导入

Binlog 导入的特点是可支持在一个数据同步作业里同步多张 Mysql 源表,用户可通过如下语法创建数据同步作业。

 

sql> CREATE SYNC `test_db`.`job1`   (     FROM `mysql_db1`.`tbl1` INTO `test_tbl1 `,    FROM `mysql_db1`.`tbl2` INTO `test_tbl2 `,    FROM `mysql_db1`.`tbl3` INTO `test_tbl3 `   )   FROM BINLOG   (     "type" = "canal",     "canal.server.ip" = "127.0.0.1",     "can
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值