Files
nexus/wiki/concepts/CDC-Change-Data-Capture.md
2026-05-03 05:42:12 +08:00

42 lines
1.8 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
---
title: "CDC (Change Data Capture)"
type: concept
tags: [data-engineering, streaming, incremental-pipeline]
sources: [engineering-data-engineer]
last_updated: 2026-05-02
---
## Definition
CDCChange Data Capture变更数据捕获是一种从源系统捕获增量变更插入、更新、删除的技术使数据管道无需全量刷新即可同步最新数据大幅降低计算成本。
## How It Works
1. **识别变更**从源数据库的事务日志WAL、时间戳字段或变更追踪表中提取变更记录
2. **携带元数据**:每条 CDC 记录携带变更类型INSERT/UPDATE/DELETE、变更时间、来源事务 ID
3. **幂等写入**:通过主键或变更时间戳实现幂等 upsertMERGE 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 ServiceAWS 托管 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 常用传输层)