查看原文
其他

实时数仓 | mysql的binlog实时同步工具对比

点击上方 "蓝色"关注, “星标”一起成长


热文回顾:数SQL分析函数,看这一篇就够了





正文 


直接上干货~!


Canal


定位:基于数据库增量日志解析,提供增量数据订阅&消费,目前主要支持了mysql。


原理:


  • canal模拟mysql slave的交互协议,伪装自己为mysql slave,向mysql master发送dump协议
  • mysql master收到dump请求,开始推送binary log给slave(也就是canal)
  • canal解析binary log对象(原始为byte流)


整个parser过程大致可分为几步:


  • 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
  • 搜索公众号Linux中文社区后台回复“命令行”,获取一份惊喜礼包。


Maxwell



canal 由Java开发,分为服务端和客户端,拥有众多的衍生应用,性能稳定,功能强大;canal 需要自己编写客户端来消费canal解析到的数据。


maxwell相对于canal的优势是使用简单,它直接将数据变更输出为json字符串,不需要再编写客户端。


Databus


Databus是一种低延迟变化捕获系统,已成为LinkedIn数据处理管道不可或缺的一部分。Databus解决了可靠捕获,流动和处理主要数据更改的基本要求。Databus提供以下功能:


  • 源与消费者之间的隔离
  • 保证按顺序和至少一次交付具有高可用性
  • 从更改流中的任意时间点开始消耗,包括整个数据的完全引导功能。
  • 分区消费
  • 源一致性保存


阿里云的数据传输服务DTS


数据传输服务(Data Transmission Service,简称DTS)是阿里云提供的一种支持 RDBMS(关系型数据库)、NoSQL、OLAP 等多种数据源之间数据交互的数据流服务。DTS提供了数据迁移、实时数据订阅及数据实时同步等多种数据传输能力,可实现不停服数据迁移、数据异地灾备、异地多活(单元化)、跨境数据同步、实时数据仓库、查询报表分流、缓存更新、异步消息通知等多种业务应用场景,助您构建高安全、可扩展、高可用的数据架构。


优势:数据传输(Data Transmission)服务 DTS 支持 RDBMS、NoSQL、OLAP 等多种数据源间的数据传输。它提供了数据迁移、实时数据订阅及数据实时同步等多种数据传输方式。相对于第三方数据流工具,数据传输服务 DTS 提供更丰富多样、高性能、高安全可靠的传输链路,同时它提供了诸多便利功能,极大得方便了传输链路的创建及管理。


个人理解:就是一个消息队列,会给你推送它包装过的sql对象,可以自己做个服务去解析这些sql对象。


免去部署维护的昂贵使用成本。DTS针对阿里云RDS(在线关系型数据库)、DRDS等产品进行了适配,解决了Binlog日志回收,主备切换、VPC网络切换等场景下的订阅高可用问题。同时,针对RDS进行了针对性的性能优化。出于稳定性、性能及成本的考虑,推荐使用。



▼ 系列 | 漫谈数仓第一篇NO.1 『基础架构』▼ 系列 | 漫谈数仓第二篇NO.2 数仓建模▼ 系列 | 漫谈数仓第三篇NO.3 『数据清洗』▼ 系列 | 漫谈数仓第四篇NO.4 『BI选型』

 系列 | 漫谈数仓第五篇NO.5 『OLAP选型』

 系列 | 漫谈数仓第六篇NO.6 『开发规范』

 系列 | 漫谈数仓第七篇NO.7 『数据质量』

 系列 | 漫谈数仓第八篇NO.8 『元数据管理』

 系列 | 漫谈数仓第九篇NO.9 『数据治理』

▼ 系列 | 漫谈数仓第十篇NO.10 『实时数仓』



写在最后



今天的分享到这里就要说再见了,希望能对你有所帮忙。你可以试着每年定一下flag,不一定要实现,但一定要复盘。相信你也一定会有很多感悟和收获。如果你对职业规划感到迷茫,有一种最简单的方式,面向招聘JD去学习、去匹配自己的技术栈与能力、去定制职位发展路线,机会一定会垂青你的。

One More,欢迎大家关注这个公众号,一起进步,一起走的更远!


下载资料:长按扫码回复 Flink


希望这篇文章可以帮到你~
欢迎大家点个在看,分享至朋友圈

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存