数据采集 ETL 的可靠性设计
CDC + Reconcile 双轨兜底
------ 电力装备制造业数据治理系列 · Vol.2 · 15
摘要 ETL 是数据治理项目最容易出现可靠性问题的环节------CDC 可能漏报、全量同步可能超时、增量逻辑可能错算。本文提出「CDC + Reconcile」双轨可靠性设计: 实时轨用 CDC 保证时效, 对账轨用全量比对兜底, 两轨配合提供「99.99% 数据一致性」保证。
1. 引言:ETL 的可靠性陷阱
数据治理项目最常见的「上线后第一周事故」之一是 ETL 数据丢失------客户在测试环境一切正常, 生产环境跑了一周发现「某个表少了 1000 行」。原因可能是 CDC 漏报、全量超时、增量逻辑错算等. 本文给出一套「永远不丢数据」的工程设计。
2. 痛点深扫描
- **CDC 漏报**: binlog 解析失败、Kafka 消息丢失、网络抖动;
- **全量同步超时**: 大表全量同步 8 小时, 跨越业务高峰期;
- **增量逻辑错算**: 时间戳精度问题导致「边界数据」漏抓或重抓;
- **Schema 变更**: 上游加列后增量逻辑不识别, 新数据丢失;
- **主键变化**: 上游主键策略变更, 增量去重失败。
3. 解决方案:CDC + Reconcile 双轨

图 1:ETL 的双轨可靠性架构
3.1 实时轨:CDC
源 DB binlog → CDC 工具 (Debezium / Canal) → Kafka → 下游消费. 时延秒级到分钟级, 覆盖 95%+ 数据更新。
3.2 对账轨:Reconcile
每日凌晨对源 DB 与目标 DB 做全量 Hash 比对, 找出差异行, 补偿同步. 时延 T+1, 覆盖 CDC 漏报的 5%。
3.3 双轨配合的工程价值
- **CDC 时效优先**: 业务高峰时段实时数据即时入仓;
- **Reconcile 准确性兜底**: 夜间对账保证最终一致性;
- **故障互补**: CDC 故障时 Reconcile 仍能保证 T+1 一致;
- **Schema 变更适配**: Reconcile 自动捕获新字段, 修复 CDC 漏抓。
4. 实施路径
- **Phase 1(M1)核心表识别**: 选 10-20 个核心表(订单 / 客户 / 物料 / 库存)启用双轨;
- **Phase 2(M1-M2)CDC 部署**: Debezium / Canal 部署, 接入核心表 binlog;
- **Phase 3(M2-M3)Reconcile 部署**: 夜间批跑全量 Hash 比对;
- **Phase 4(M3-M4)告警与修复**: Reconcile 发现差异时自动告警 + 补偿同步;
- **Phase 5(M4+)扩展**: 双轨能力扩展到更多表。
5. 价值数据
▎核心 KPI 数据丢失事故: 月均 1-2 起 → 季度 < 1 起 | 最大数据延迟: T+24h → T+5min (99% 数据) | T+1 对账完整性: 95% → 99.99% | Schema 变更适应时长: 数天 → 数小时
▎数据说明 上述价值数据为基于行业典型场景的工程估算。
6. 工程见解与边界
6.1 「不要追求 100% 实时」
双轨的设计哲学是「实时 + 准确」, 不是「100% 实时」. CDC 保证 95%+ 实时, Reconcile 兜底剩余 5%. 追求纯实时会导致工程复杂度爆炸。
6.2 局限性
- **老 DB 无 binlog**: 部分老 Oracle / 自研 DB 不支持 binlog, CDC 无法实施;
- **大表 Reconcile 成本**: 1 亿+ 行表的全量 Hash 对账可能耗时数小时;
- **双向同步复杂**: 双轨主要为单向同步设计, 双向场景需特殊处理。
▎工程见解 ETL 可靠性是数据治理的「隐性 KPI」------做得好时无人感知, 做得不好时业务全炸. 「CDC + Reconcile 双轨」是被电力装备企业实际项目反复验证的可靠性设计, 比单纯 CDC 鲁棒得多。
7. 关于我们
贵州数幄科技有限公司是一家专注于 人工智能与数据智能 领域的科技公司。
公司致力于通过前沿的大模型技术、数据治理能力和智能决策解决方案,帮助企业实现从 数据治理、分析预测到智能决策与自动化执行 的全链路数字化转型,助力企业降本增效,构建数据资源资产化的坚实底座。
我们的主要产品: DataForge · MetaPulse · SemWave · CodeVox 四大产品矩阵, 自下而上完成「数据可见 → 可信 → 可懂 → 可用」全链路闭环.

参考资料
1 Debezium. Open Source Distributed CDC Platform. https://debezium.io/
2 Alibaba. Canal: MySQL Binlog Subscription Tool. https://github.com/alibaba/canal
3 Kreps J. The Log: What Every Software Engineer Should Know About Real-time Data's Unifying Abstraction. 2013.
4 Helland P. Idempotence Is Not a Medical Condition. ACM Queue 2012.
5 Marz N, Warren J. Big Data: Principles and Best Practices. Manning, 2015.