ZhangZhihui's Blog  

所谓的 数据质量检核,主要是对数据在同步或计算过程中进行 校验与监控,保证结果数据的 完整性、准确性和一致性。它的作用大致可以分成以下几个方面:


1. 字段级别检查

  • 检查字段是否符合预期的数据类型(例如,日期字段是否都是合法日期)。

  • 校验字段的取值范围、格式(如手机号长度、邮件正则)。

  • 确认主键、唯一键是否存在重复。


2. 表级别检查

  • 行数是否与源表一致(防止抽取丢失或重复)。

  • 分区字段是否完整、分区数据是否缺失。

  • 表是否存在空值过多的情况。


3. 规则校验

  • 根据用户定义的 质量规则 自动检核(例如:收入字段必须大于 0,状态字段只能是 [A,B,C] 这几种)。

  • 业务逻辑一致性校验(例如订单金额是否等于各明细金额之和)。


4. 异常告警与结果输出

  • 如果校验失败,会在任务运行日志中生成 质量报告,并可以触发 告警通知(如钉钉、邮件)。

  • 检核结果通常会有 通过率 / 异常行数 / 异常原因


✅ 简单理解:
数据质量检核 就是离线任务跑完后的一道“体检”,帮你确认这批数据有没有“坏数据”,能不能安全地进入下游数仓、分析或报表。

 

🔎 常见数据质量检核规则清单

1. 完整性(Completeness)

  • 非空检查:某些字段不能为空(如订单号、身份证号、主键)。

  • 分区完整性:应有的分区是否存在(如每天分区 dt=20250902 必须有数据)。

2. 唯一性(Uniqueness)

  • 主键唯一:主键或组合键是否有重复值。

  • 去重检查:同一自然业务主键(如用户ID+日期)是否重复。

3. 一致性(Consistency)

  • 数据类型一致性:字段类型和定义是否一致(如金额应为数值型)。

  • 引用一致性:外键值在维度表中是否存在(如订单的客户ID在客户表中必须有记录)。

  • 业务逻辑一致性:例如 订单金额 = 商品单价 × 数量

4. 准确性(Accuracy)

  • 取值范围检查:数值字段是否在合理区间(如年龄在 [0,120] 之间)。

  • 正则规则检查:文本格式校验(如手机号必须是 ^1[3-9]\d{9}$)。

  • 字典值检查:状态字段是否在允许值集合内(如 status in ('A','B','C'))。

5. 及时性(Timeliness)

  • 分区时效检查:是否按时生成分区数据(如 T+1 应该有昨天的数据)。

  • 数据延迟检查:某批数据是否在预期时间范围内到达。

6. 统计类检查(Profiling)

  • 总行数检查:是否与源端一致(防止丢数据或多数据)。

  • 字段分布检查:字段值分布是否异常(如性别字段 99% 都是 “男”)。

  • 空值比例检查:某字段空值率是否超过阈值。


📊 输出结果

  • 通过率(例如 95% 字段符合规则)。

  • 异常数据量(例如 1200 条数据不满足唯一性)。

  • 详细异常样例(帮助快速定位问题)。


👉 这样你可以把规则分成三类来用:

  1. 系统内置规则(非空、唯一、范围)。

  2. 业务定制规则(比如金额一致性)。

  3. 统计性监控规则(趋势、分布、异常值)。

 

posted on 2025-09-02 15:50  ZhangZhihuiAAA  阅读(15)  评论(0)    收藏  举报