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