引言:
此篇文章是基于公司内部分享的实际ppt整理而得,在公司内部已经实际运行几个月之久,效果比较明显,是一套比较纯粹的数据实时同步系统,核心组旨高效进行数据同步,而不是在数据同步过程中对数据进行处理。由于内容较多分为几篇列出:
- 《异构数据源的CDC实时同步系统》 系列第一篇 (已完成)
- 《零编码打造异构数据实时同步系统——异构数据源CDC之2》 系列第二篇(已完成)
- 《零编码打造异构数据实时同步系统——异构数据源CDC之3》 系列第三篇(已完成)
- 《零编码打造异构数据实时同步系统——异构数据源CDC之4》 系列第四篇
一、什么是CDC,和传统的ETL系统有什么区别
数据变更抓取(change data capture, CDC): 通过数据源的事务日志抓取数据源变更,这能解决一致性问题(只要下游能保证变更应用到新库上)。它的问题在于各种数据源的变更抓取没有统一的协议,如 MySQL 用 Binlog,PostgreSQL 的WAL日志,最新版本用 Logical decoding 机制,MongoDB 里则是 oplog。
ETL目的是将企业中的分散、零乱、标准不统一的数据整合到一起,为企业的决策提供分析依据。生产实践中多为从业务系统抽取数据到数仓的过程
采用CDC系统一般对实时性要求比较高,不希望对业务系统有影响;而传统的etl系统优势在于流程控制和中间处理过程的灵活性,性能反而不是追求的极致目标。
二、常见ETL工具对比