抽样校验设计

全量逐行校验成本高时用抽样:按业务维度分层(渠道、门店、金额段)随机取样,样本量按可容忍误差估算;抽样适合准确性人工复核与超大表初筛,但主键唯一、金额勾稽等关键校验仍建议全量执行。

抽样校验设计

全量逐行校验成本高时用抽样替代:按业务维度分层(渠道、门店、金额段、时间分段)后在各层内随机取样,样本量按可容忍误差与差异率估算,而不是凭感觉取几百条。抽样适合大表初筛与需要人工复核的准确性检查;但主键唯一、金额勾稽、非空这类关键校验仍应全量执行,因为抽样通过并不能证明全量正确。抽样报告必须标注方法与覆盖范围,否则结论会被误用。

基本信息

适用范围超大表初筛、准确性人工复核、成本受限场景
分层维度渠道、门店、金额段、时间分段等业务维度
样本量按可容忍误差与预期差异率估算,不凭感觉
不适用主键唯一、金额勾稽、非空等关键校验应全量
报告要求标注抽样方法、分层维度与覆盖范围

典型使用场景

  • 超大明细表每日快速摸一遍质量,控制校验成本
  • 与源系统人工比对金额:抽取样本做逐条核对
  • 新接入数据源上线前抽样验收,确认格式与取值符合预期
  • 长尾问题预估:按分层抽样估算整体错误率的量级
  • 全量校验通过后仍抽一部分人工复核,验证规则本身有效

分层随机抽样

分层随机抽样
-- 按渠道分层,每层随机取 200 条(各层样本量相同,属等量分配)
SELECT * FROM (
  SELECT t.*,
         ROW_NUMBER() OVER (PARTITION BY channel ORDER BY RAND()) AS rn
  FROM dwd_trade_order_detail_di t
  WHERE dt = '2026-10-11'
) x
WHERE x.rn <= 200;

-- 说明一:分层可避免只抽到头部活跃数据,长尾也能被覆盖
-- 说明二:样本量按可容忍误差估算,并在报告中写明
-- 说明三:逐条人工核对时把样本导出为可读文件,保留核对记录

抽样与全量对照

校验类型建议方式理由风险
主键唯一全量少量重复也会污染下游连接抽样会漏掉长尾重复
金额勾稽全量或按订单全量资金类口径不允许抽样近似抽样结论不能用于对外
格式与枚举抽样规则明确,抽样即可发现系统性错误源端局部异常可能漏掉
人工核对抽样人工成本高,只能抽结论要标明覆盖范围
抽样通过不等于全量正确:抽样报告要标注方法与覆盖范围,不能作为资金类核对的最终依据。
只抽头部活跃数据会让长尾错误永远抽不到:按业务维度分层,并在分层结果里确认各层都有样本。
样本量要能支撑结论:差异率很低时,几百条样本的检验能力不足,估算出的错误率区间会很宽,结论只能作参考。

易错点

  • 只抽头部活跃数据,长尾错误永远抽不到,抽样结论掩盖真实问题
  • 样本量凭感觉确定,差异率低时检验能力不足,估算区间过宽
  • 把抽样通过当成全量正确,资金类核对直接采信抽样结论
  • 样本导出无随机种子也无记录,事后无法复核抽样过程与范围

数据来源与参考

  • DAMA-DMBOK(数据质量与抽样方法)
  • 行业数据稽核实践
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌