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

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

被折叠的 条评论
为什么被折叠?



