准确性校验是什么
准确性看的是「数值与事实是否相符」,是数据质量里最难完全自动化的维度:内部一致性可以写 SQL 校验,但数值是否与真实业务相符,只能依赖外部权威来源、抽样复核或独立实现对照。实践中最有效的两条抓手是双算与对账——同一条链路用两种独立方式各算一遍互相印证,或与源系统、第三方账单核对总额。
基本信息
| 对账 | 与源系统或第三方账单核对总额与分类合计 |
|---|---|
| 规则校验 | 内部逻辑勾稽,如 单价 × 数量 = 金额、明细之和 = 汇总之和 |
| 抽样复核 | 随机抽样人工核对,样本量需按影响面确定 |
| 双算 | 同口径两种独立实现(如明细求和与汇总表)互相对照 |
| 判定方式 | 绝对差与相对差双阈值,避免小金额误报与大金额漏报 |
| 输出 | 差异清单落到单据级,便于业务确认 |
典型使用场景
- 金额勾稽:订单明细金额之和与支付流水的实收金额核对
- 逻辑规则校验:单价、数量、金额三者的乘算关系是否成立
- 上下层对照:DWD 明细聚合结果与 DWS 汇总表数值比对
- 对外披露前核对:与财务账单或第三方对账单核对总额
- 抽样复核:对异常分布的分区抽取样本人工确认
内部逻辑校验与分层对照
内部逻辑校验与分层对照
-- 规则校验:乘算关系不成立即为可疑行
SELECT order_id, qty, unit_price, item_amount
FROM dwd_trade_order_detail_di
WHERE dt = '2026-10-11'
AND ABS(qty * unit_price - item_amount) > 0.01
LIMIT 50;
-- 双算对照:明细汇总与汇总表两套实现互相印证
SELECT d.dt, d.amt AS detail_sum, s.amt AS summary_amt,
ROUND(d.amt - s.amt, 2) AS diff
FROM (SELECT dt, SUM(pay_amount) AS amt FROM dwd_trade_order_detail_di
WHERE dt = '2026-10-11' GROUP BY dt) d
JOIN (SELECT dt, SUM(amt) AS amt FROM dws_trade_pay_1d
WHERE dt = '2026-10-11' GROUP BY dt) s ON d.dt = s.dt;手段与覆盖范围
| 手段 | 能发现什么 | 局限 |
|---|---|---|
| 内部规则校验 | 字段间逻辑矛盾、乘算不成立 | 逻辑自洽但取值本身错误时查不出 |
| 上下游双算 | 加工逻辑不一致、漏算重复算 | 两次实现共用同一个错误假设时同时错 |
| 源端对账 | 抽取过程丢数据、口径差异 | 依赖源端可访问与口径可对齐 |
| 第三方账单核对 | 与外部事实是否相符 | 对账周期长,通常只能按日或按月 |
| 抽样人工复核 | 发现无规律的业务性错误 | 覆盖有限,不能替代规则校验 |
准确性校验要按表的重要程度分级:核心交易与资金类表做每日对账,次要分析表用规则校验加抽样,全量人工核对不具备可持续性。
绝对差阈值对高金额业务不敏感,相对差阈值对低金额业务噪声大;两者并用,并对大额单据单独设绝对阈值,才能兼顾误报与漏报。