所谓的 数据质量检核,主要是对数据在同步或计算过程中进行 校验与监控,保证结果数据的 完整性、准确性和一致性。它的作用大致可以分成以下几个方面:
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 条数据不满足唯一性)。
-
详细异常样例(帮助快速定位问题)。
👉 这样你可以把规则分成三类来用:
-
系统内置规则(非空、唯一、范围)。
-
业务定制规则(比如金额一致性)。
-
统计性监控规则(趋势、分布、异常值)。