42 lines
1.8 KiB
Markdown
42 lines
1.8 KiB
Markdown
---
|
||
title: "CDC (Change Data Capture)"
|
||
type: concept
|
||
tags: [data-engineering, streaming, incremental-pipeline]
|
||
sources: [engineering-data-engineer]
|
||
last_updated: 2026-05-02
|
||
---
|
||
|
||
## Definition
|
||
|
||
CDC(Change Data Capture,变更数据捕获)是一种从源系统捕获增量变更(插入、更新、删除)的技术,使数据管道无需全量刷新即可同步最新数据,大幅降低计算成本。
|
||
|
||
## How It Works
|
||
|
||
1. **识别变更**:从源数据库的事务日志(WAL)、时间戳字段或变更追踪表中提取变更记录
|
||
2. **携带元数据**:每条 CDC 记录携带变更类型(INSERT/UPDATE/DELETE)、变更时间、来源事务 ID
|
||
3. **幂等写入**:通过主键或变更时间戳实现幂等 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
|
||
- [[Medallion Architecture]]
|
||
- [[Data Contract]](CDC 需配合数据契约确保 schema 兼容)
|
||
- [[Apache Kafka]](CDC 常用传输层)
|