名词
- CDC(Change Data Capture): 数据变化捕获
- ETL(Extract Transform Load):数据提取、转换、载入
工具
特色 | Canal | mysql_streamer | go-mysql-transfer | Maxwell | Databus | DataX |
---|---|---|---|---|---|---|
开源方 | 阿里巴巴 | Yelp | - | zendesk | 阿里巴巴 | |
开发语言 | Java | Python | Golang | Java | Java | Java |
活跃 | 是 | 否 | 是 | 是 | 否 | 是 |
高可用 | 支持 | 支持 | 支持 | - | 支持 | - |
文档 | 详细 | 还行 | 详细 | 详细 | 详细 | 还行 |
数据源 | Mysql | Mysql | Mysql | Mysql | Mysql Oracle |
MySQL Oracle OceanBase SQLServer PostgreSQL DRDS ALL_RDBMS ODPS OSS OTS Hbase0.94 Hbase1.1 Phoenix4.x Phoenix5.x MongoDB Hive Cassandra TxtFile FTP HDFS TSDB TDengine OpenTSDB |
接收端 | 编码定制 | Kafka等(MQ) | Redis MongoDB Elasticsearch RabbitMQ Kafka RocketMQ HTTP API 后续支持更多 |
stdout Kafka Kinesis Nats Google Cloud Pub/Sub Google Cloud Bigquery RabbitMQ Redis SNS |
编码定制? | MySQL Oracle OceanBase SQLServer PostgreSQL DRDS ALL_RDBMS ODPS OSS OTS Hbase0.94 Hbase1.1 Phoenix4.x Phoenix5.x MongoDB Hive Cassandra TxtFile FTP HDFS TSDB TDengine ADS OCS Elasticsearch |
全量数据初始化 | 不支持 | 支持 | 支持 | 支持(maxwell-bootstrap) | - | 支持 |
数据格式 | 编码定制 | Json(固定格式) | Json(规则配置) 模板语法 Lua脚本 |
Json (固定) | 编码定制? | - |
备注 | 需要写代码定制接受端 | 可扩展性更强,但是上手难度更高 | 数据同步非实时 实际使用配合 datax-web 体验更佳 |
alibaba/canal | 文档 | Docker
基于 MySQL 数据库增量日志解析,提供增量数据订阅和消费。
由Java开发,分为服务端和客户端,拥有众多的衍生应用,性能稳定,功能强大;canal 需要自己编写客户端来消费canal解析到的数据。
Yelp/mysql_streamer | 文档
wj596/go-mysql-transfer | 文档
zendesk/maxwell | 官网 | 文档
linkedin/databus | 文档
Databus是一种低延迟变化捕获系统,已成为LinkedIn数据处理管道不可或缺的一部分。Databus解决了可靠捕获,流动和处理主要数据更改的基本要求。Databus提供以下功能:
源与消费者之间的隔离
保证按顺序和至少一次交付具有高可用性
从更改流中的任意时间点开始消耗,包括整个数据的完全引导功能。
分区消费
源一致性保存
上手难度较高。
alibaba/DataX | 简介 | WeiYe-Jing/datax-web | qlangtech/tis
DataX 是阿里云 DataWorks数据集成 的开源版本,在阿里巴巴集团内被广泛使用的离线数据同步工具/平台。DataX 实现了包括 MySQL、Oracle、OceanBase、SqlServer、Postgre、HDFS、Hive、ADS、HBase、TableStore(OTS)、MaxCompute(ODPS)、Hologres、DRDS 等各种异构数据源之间高效的数据同步功能。
配合 DataX-Web 可视化配置任务。
osheroff/mysql-binlog-connector-java | Maven
在 Java 中消费 Mysql Binlog。
参考文档
- MySQL数据 实时同步到Kafka –Binlog canal、Maxwell、Kafka Connect 实现MySQL增量同步
- 实时数仓 | mysql的binlog实时同步工具对比