对账的三层口径
指标对账按可解释差异的思路逐层比对:源系统到数仓明细、明细到汇总、汇总到报表,每层比对行数、金额与计数三类核对项。差异不立刻当成故障,而是先分类(时间、条件、版本、缺陷),再决定是否需要修复。
基本信息
| 链路层次 | 源系统、数仓明细、汇总层、报表层 |
|---|---|
| 比对内容 | 行数、金额、计数三类核对项 |
| 差异分类 | 时间差异、条件差异、版本差异、程序缺陷 |
| 运行频率 | 核心链路按日,其他链路按周或按月 |
| 产出 | 差异登记表与闭环跟踪,责任到人 |
典型使用场景
- 上线验收:逐层核对明细、汇总与报表的一致性
- 日常监控:核心金额指标每日自动比对,异常即时告警
- 变更回归:源系统换表或改字段后重跑全链路对账
- 报表答疑:业务质疑数字时用对账结果说明差异来源
- 审计配合:提供可追溯的对账记录作为数据可靠性证据
三层对账 SQL
三层对账 SQL
-- 同一天的支付金额逐层比对
SELECT 'dwd' AS lv, sum(pay_amt) AS amt
FROM dwd_pay WHERE dt = '2026-10-12'
UNION ALL
SELECT 'dws', sum(pay_amt)
FROM dws_pay_day WHERE dt = '2026-10-12'
UNION ALL
SELECT 'report', sum(pay_amt)
FROM ads_pay_report WHERE dt = '2026-10-12';层次与差异来源
| 层次 | 比对项 | 典型差异来源 |
|---|---|---|
| 源到明细 | 行数、金额 | 抽取延迟、接口漏单 |
| 明细到汇总 | 金额、计数 | 去重与聚合口径不同 |
| 汇总到报表 | 指标值 | 缓存未刷新、报表参数不同 |
抽样与全量要双轨推进:抽样看单笔细节,全量看连续性。只做抽样会漏掉系统性偏差,只做全量则在差异出现时无法逐笔定位。
差异要先登记分类而不是当场修改:记录差异类型、影响范围与处理结论,再决定是否重跑,避免为了对平而改动上游数据。
对账要区分可解释差异与未解释差异:时间与条件差异属于可解释,程序缺陷属于未解释;未解释差异必须闭环整改,不能长期以备注形式挂账。