title, type, tags, sources, last_updated
| title |
type |
tags |
sources |
last_updated |
| CDC (Change Data Capture) |
concept |
| data-engineering |
| streaming |
| incremental-pipeline |
|
| engineering-data-engineer |
|
2026-05-02 |
Definition
CDC(Change Data Capture,变更数据捕获)是一种从源系统捕获增量变更(插入、更新、删除)的技术,使数据管道无需全量刷新即可同步最新数据,大幅降低计算成本。
How It Works
- 识别变更:从源数据库的事务日志(WAL)、时间戳字段或变更追踪表中提取变更记录
- 携带元数据:每条 CDC 记录携带变更类型(INSERT/UPDATE/DELETE)、变更时间、来源事务 ID
- 幂等写入:通过主键或变更时间戳实现幂等 upsert(MERGE INTO Delta Lake),确保重新运行安全
Benefits
- 成本节省:增量处理 vs. 全量刷新,成本降低 90%+
- 低延迟:变更实时捕获,支持分钟级甚至秒级数据刷新
- 低影响:CDC 通常基于数据库日志读取,对源系统影响极小
CDC in Medallion Architecture
- Bronze 层:CDC 记录追加写入,保留完整变更历史(append-only)
- Silver 层:基于变更类型(INSERT=插入, UPDATE=更新, DELETE=标记删除)进行去重和 conform
- Gold 层:CDC 支持近实时业务指标更新
CDC Technologies
- Debezium:开源 CDC 平台,捕获 MySQL/PostgreSQL/MongoDB 等变更并发布到 Kafka
- AWS DMS(Database Migration Service):AWS 托管 CDC 解决方案
- Azure Data Factory CDC 活动:Azure 生态 CDC 工具
- Databricks Auto Loader:
cloudFiles 增量摄取 CSV/Parquet/JSON 文件变更
Related Concepts