| 中文名 | 变更数据捕获(Change Data Capture) |
|---|---|
| 输入 | 数据库日志、触发器记录、时间戳轮询或全量比对 |
| 输出 | 按主键排序的增删改事件流 |
| 与本包关系 | 本组聚焦日志解析型 CDC 及其同步落地 |
典型实现方式
| 方式 | 原理 | 优点 | 局限 |
|---|---|---|---|
| 日志解析 | 读 binlog/redo/WAL 等数据库日志 | 对源库侵入小、延迟低 | 需要日志权限与配套工具 |
| 触发器 | 在表上建触发器记录变更 | 实现直接、不依赖日志 | 增加写入开销、触发器等对象维护面大 |
| 时间戳轮询 | 按 updated_at 字段增量查询 | 实现简单、无需日志 | 捕获不到删除、精度受字段维护影响 |
| 全量对比 | 周期性全量比对差异 | 不依赖日志 | 开销大、延迟高,适合兜底校验 |
一条典型链路
一条典型链路
MySQL binlog
→ CDC 工具(Canal / Debezium / Flink CDC)解析
→ Kafka Topics
→ 下游:数仓 ODS、检索索引、缓存、审计归档开荒阶段 = 初始快照 + 增量衔接:先拿位点再导数据,再从该位点继续追变更,中间不能出现窗口缺口。