层间勾稽怎么做
每一层数据发布时都要与上游勾稽,最常见的是行数、关键金额、去重计数三类核对。汇总层与明细层之间存在允许的差异,例如未知成员被过滤、口径过滤条件不同、去重规则差异,这些差异必须显式登记成清单,清单之外的一律视为缺陷并阻断发布。勾稽任务要固化在发布流程里自动执行,而不是上线时跑一次就束之高阁。
基本信息
| 检查项 | 行数、关键金额、去重计数 |
|---|---|
| 允许差异 | 显式清单,逐条说明原因 |
| 阻断条件 | 清单之外的任何差异 |
| 执行方式 | 固化在发布流程中自动执行 |
| 结果留存 | 对账结果落表,保留历史 |
典型使用场景
- 明细层与汇总层每日对账,确认金额与笔数一致
- 新表上线前做一次性全量勾稽,确认转换逻辑无误
- 口径调整后重跑勾稽,验证影响范围是否符合预期
- 差异长期挂账时形成治理清单,定期推动关闭
- 与财务、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,非零时逐条比对允许差异清单常见差异来源
| 检查项 | 口径 | 差异原因举例 |
|---|---|---|
| 行数 | 明细与汇总同分区计数 | 未知成员被过滤 |
| 金额 | 同口径合计值 | 币种或单位不统一 |
| 去重计数 | 按业务键去重后计数 | 拆单与合单规则不同 |
| 唯一性 | 业务键重复检查 | 上游重复推送 |
勾稽要选对口径再比:明细含未支付订单、汇总只算已支付,这类差异属于口径定义而非数据错误,比对前先对齐过滤条件。
对账结果要落表并保留趋势:只看当天是否相等,缓慢累积的偏离会被忽略,等发现时已经很难定位从哪一天开始。