CDC 的全称是 Change Data Capture ,在广义的概念上,只要是能捕获数据变更的技术,我们都 可以称之为 CDC 。
- 基于查询的 CDC:
离线调度查询作业,批处理。依赖表中的更新时间字段,每次执行查询去获取表中最新的数据;
无法捕获删除事件,从而无法保证数据一致性;
无法保障实时性,基于离线调度存在天然的延迟。
- 基于日志的 CDC:
实时消费日志,流处理。例如 MySQL 的 binlog 日志完整记录了数据库中的变更,可以把 binlog 文件当作流的数据源;
保障数据一致性,因为 binlog 文件包含了所有历史变更明细;
保障实时性,因为类似 binlog 的日志文件是可以流式消费的,提供的是实时数据。

应用场景
- 数据迁移:常用于数据库备份、容灾等;
- 数据分发:将一个数据源分发给多个下游,常用于业务解耦、微服务;
- 数据采集:将分散异构的数据源集成到数据仓库中,消除数据孤岛,便于后续的分析。
工具对比
