抽样校验设计
全量逐行校验成本高时用抽样替代:按业务维度分层(渠道、门店、金额段、时间分段)后在各层内随机取样,样本量按可容忍误差与差异率估算,而不是凭感觉取几百条。抽样适合大表初筛与需要人工复核的准确性检查;但主键唯一、金额勾稽、非空这类关键校验仍应全量执行,因为抽样通过并不能证明全量正确。抽样报告必须标注方法与覆盖范围,否则结论会被误用。
基本信息
| 适用范围 | 超大表初筛、准确性人工复核、成本受限场景 |
|---|---|
| 分层维度 | 渠道、门店、金额段、时间分段等业务维度 |
| 样本量 | 按可容忍误差与预期差异率估算,不凭感觉 |
| 不适用 | 主键唯一、金额勾稽、非空等关键校验应全量 |
| 报告要求 | 标注抽样方法、分层维度与覆盖范围 |
典型使用场景
- 超大明细表每日快速摸一遍质量,控制校验成本
- 与源系统人工比对金额:抽取样本做逐条核对
- 新接入数据源上线前抽样验收,确认格式与取值符合预期
- 长尾问题预估:按分层抽样估算整体错误率的量级
- 全量校验通过后仍抽一部分人工复核,验证规则本身有效
分层随机抽样
分层随机抽样
-- 按渠道分层,每层随机取 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;
-- 说明一:分层可避免只抽到头部活跃数据,长尾也能被覆盖
-- 说明二:样本量按可容忍误差估算,并在报告中写明
-- 说明三:逐条人工核对时把样本导出为可读文件,保留核对记录抽样与全量对照
| 校验类型 | 建议方式 | 理由 | 风险 |
|---|---|---|---|
| 主键唯一 | 全量 | 少量重复也会污染下游连接 | 抽样会漏掉长尾重复 |
| 金额勾稽 | 全量或按订单全量 | 资金类口径不允许抽样近似 | 抽样结论不能用于对外 |
| 格式与枚举 | 抽样 | 规则明确,抽样即可发现系统性错误 | 源端局部异常可能漏掉 |
| 人工核对 | 抽样 | 人工成本高,只能抽 | 结论要标明覆盖范围 |
抽样通过不等于全量正确:抽样报告要标注方法与覆盖范围,不能作为资金类核对的最终依据。
只抽头部活跃数据会让长尾错误永远抽不到:按业务维度分层,并在分层结果里确认各层都有样本。
样本量要能支撑结论:差异率很低时,几百条样本的检验能力不足,估算出的错误率区间会很宽,结论只能作参考。