一致性校验

一致性校验确认同一事实在不同表、不同系统或不同层级之间口径一致:订单金额与明细汇总一致、数仓与源库账单一致、指标在 DWS 与 ADS 一致;差异要能解释。

层级内DWD 明细与 DWS 汇总口径一致
跨表主表金额与明细金额合计一致
跨系统数仓与业务库或账单核对
处置差异定位到具体单据并解释原因

主表与明细金额核对

主表与明细金额核对
SELECT o.order_id, o.pay_amount, SUM(d.item_amount) AS detail_sum
FROM dwd_trade_order_di o
JOIN dwd_trade_order_detail_di d ON o.order_id = d.order_id
WHERE o.dt = '2026-10-11' AND d.dt = '2026-10-11'
GROUP BY o.order_id, o.pay_amount
HAVING ABS(o.pay_amount - SUM(d.item_amount)) > 0.01
LIMIT 50;
一致性检查的容差要按业务定义:金额可用 0.01 元容差,计数类通常要求完全相等。

易错点

  • 跨表核对时忘记统一过滤条件(一边含测试单),差异全是噪声
  • 用浮点直接比较金额,出现本不存在的精度差异告警

数据来源与参考

  • 行业数据质量一致性校验实践
  • DAMA-DMBOK 一致性维度
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌