Debezium系列-数据库日志变更的CDC简单对比

背景

1)sqoop 同步的一些不足

  • 实时性低
  • 增量同步,无法同步物理删除的记录
  • 有些表是有修改没有修改时间字段,或者不维护修改时间字段,及时数据量很大也没办法增量同步
  • 数据同步时读取数据库产生大量的IO

2)用户越来越渴望实时性的数据

基于数据日志变更的CDC简单对比

目前了解组件有 maxwell、canal、debezium、flinkx (如果还要别的欢迎留言补充)

组件CanalMaxwellDebeziumFlinx
开源方阿里zendeskredhat袋鼠云
开发语言JavaJavaJavaJava
支持数据库MySQLMySQLMongoDB、MySQL、PostgreSQL、SQL Server 、Oracle( 孵化)、DB2( 孵化)、Cassandra( 孵化)MongoDB、MySQL、PostgreSQL
是否支持bootstrap
是否支持解析DDL同步
是否支持HA需定制基于kafka-connector
社区活跃(2020.07.20)release:2019.09.02,star:14.8k,last-commit:2020.03.13release:2020.07.01,star:2.2k,last-commit:2020.07.02release:2020.07.16,star:3.4k,last-commit:2020.07.16release:2020.07.14,star:1.4k,last-commit:2020.07.17
文档中文,百度可以解决英文,官方文档英文,官方文档十分详细中文,github readme 文档
MQ集成RocketMQ、KafkakafkakafkaEmqx、kafka

分析

选型考虑的点

  1. 必须带bootstrap功能
  2. 可与kafka的集成,集成越简单越好
  3. 数据源必须支持 MySQL、MongoD、PostgreSQL(项目刚需)
  4. 项目活跃程度

从支持的数据源来看Canal、Maxwell 数据源支持不足,Debezium和Flinkx都是不错的选择; 但FlinkX 支不支持bootstrap,只能选择 Debezium
一些有意思的事情:

  1. 在调研时 google 出来的资料,基于kafka connector 的 Debezium 会比基于Flink 的FlinkX 更多;
  2. Debezium是基于kafka connector 集成开发的与kafka 高度耦合
  3. FlinkX的mysql binlog 同步基于canal的客户端开发的
  4. kafka 1.0 以后 connector的发展很快,confluent 有很多开源的connector。

参考资料

  • 4
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值