MySQL 的 Binlog 数据同步工具(Canal/Maxwell/Databus/DTS)对比
点击上方 "蓝色"关注, 星标或置顶一起成长
Canal
定位:基于数据库增量日志解析,提供增量数据订阅&消费,目前主要支持了mysql。
原理:
canal模拟mysql slave的交互协议,伪装自己为mysql slave,向mysql master发送dump协议
mysql master收到dump请求,开始推送binary log给slave(也就是canal)
canal解析binary log对象(原始为byte流)
Connection获取上一次解析成功的位置(如果第一次启动,则获取初始制定的位置或者是当前数据库的binlog位点)
Connection建立连接,发生BINLOG_DUMP命令
Mysql开始推送Binary Log
接收到的Binary Log通过Binlog parser进行协议解析,补充一些特定信息
传递给EventSink模块进行数据存储,是一个阻塞操作,直到存储成功
存储成功后,定时记录Binary Log位置
数据过滤:支持通配符的过滤模式,表名,字段内容等
数据路由/分发:解决1:n (1个parser对应多个store的模式)
数据归并:解决n:1 (多个parser对应1个store)
数据加工:在进入store之前进行额外的处理,比如join
Maxwell
源与消费者之间的隔离
保证按顺序和至少一次交付具有高可用性
从更改流中的任意时间点开始消耗,包括整个数据的完全引导功能。
分区消费
源一致性保存
2020-08-15
2020-08-14
2020-08-12
2020-08-13
2020-08-11
公众号回复“ck”或戳'阅读原文',即可获取最新PPT下载资源链接。
Q: 关于实时数仓你还想了解什么?
更多精彩,请在文末菜单栏“实时数仓”查看
!关注不迷路~ 各种福利、资源定期分享!