首页/数据/数仓建模速查/事实层与汇总层的勾稽规范
维度与事实设计149 条

事实层与汇总层的勾稽规范

每层发布都要与上游勾稽:行数、金额、去重计数;汇总与明细允许的差异必须显式登记(如未知成员、口径差异),否则视为缺陷。

数仓建模速查数据更新于 2026-10-13

层间勾稽怎么做

每一层数据发布时都要与上游勾稽,最常见的是行数、关键金额、去重计数三类核对。汇总层与明细层之间存在允许的差异,例如未知成员被过滤、口径过滤条件不同、去重规则差异,这些差异必须显式登记成清单,清单之外的一律视为缺陷并阻断发布。勾稽任务要固化在发布流程里自动执行,而不是上线时跑一次就束之高阁。

基本信息

检查项行数、关键金额、去重计数
允许差异显式清单,逐条说明原因
阻断条件清单之外的任何差异
执行方式固化在发布流程中自动执行
结果留存对账结果落表,保留历史

典型使用场景

  • 明细层与汇总层每日对账,确认金额与笔数一致
  • 新表上线前做一次性全量勾稽,确认转换逻辑无误
  • 口径调整后重跑勾稽,验证影响范围是否符合预期
  • 差异长期挂账时形成治理清单,定期推动关闭
  • 与财务、ERP 等外部系统对账前先完成内部对齐

金额与笔数勾稽

金额与笔数勾稽
-- 明细与汇总的金额、笔数同口径比对
SELECT (SELECT sum(amt)   FROM dwd_sales      WHERE dt = '2026-10-12') AS detail_amt,
       (SELECT sum(amt)   FROM dws_sales_day  WHERE dt = '2026-10-12') AS dws_amt,
       (SELECT count(1)   FROM dwd_sales      WHERE dt = '2026-10-12') AS detail_cnt;

-- 差异登记:清单外的差异视为缺陷
-- diff = detail_amt - dws_amt,非零时逐条比对允许差异清单

常见差异来源

检查项口径差异原因举例
行数明细与汇总同分区计数未知成员被过滤
金额同口径合计值币种或单位不统一
去重计数按业务键去重后计数拆单与合单规则不同
唯一性业务键重复检查上游重复推送
勾稽要选对口径再比:明细含未支付订单、汇总只算已支付,这类差异属于口径定义而非数据错误,比对前先对齐过滤条件。
对账结果要落表并保留趋势:只看当天是否相等,缓慢累积的偏离会被忽略,等发现时已经很难定位从哪一天开始。

易错点

  • 层间差异长期不解释,出事故时无从判断是正常差异还是缺陷
  • 勾稽只在上线时跑一次,后续维护中悄悄失守
  • 对账口径未对齐,含与不含未支付单混比,天天报警却都不是问题
  • 差异清单靠口头约定,交接后没人知道哪些差异是被允许的

数据来源与参考

  • 数仓质量实践:跨层勾稽
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌