首页/数据/数据工程与 ETL 速查/数据质量规则引擎

数据质量规则引擎

规则引擎把校验规则从代码变成配置:规则名、目标表、过滤条件、校验类型、阈值、告警级别、责任人;调度平台按表与周期批量执行并汇总结果,新增规则不用改任务代码。

规则引擎是什么

数据质量规则引擎把校验逻辑从代码里抽出来变成配置:一条规则登记目标表、过滤条件、校验类型、阈值、告警级别与责任人,调度平台按表与周期批量执行并汇总结果。这样新增或调整规则只需改配置,不必修改任务代码重新发布;规则、结果与责任人沉淀在同一处,看板与告警才有统一的数据来源。多数开源方案(Griffin、Deequ 加自研配置层、商业数据质量平台)都按这个思路组织。

基本信息

规则要素对象、过滤条件、校验类型、阈值、级别、责任人
常见类型空值、唯一、枚举、范围、行数波动、自定义 SQL
执行方式按表与周期批量调度,可分级与采样
输出规则结果表加告警与看板
落地前提统一的结果表结构与责任人字段

典型使用场景

  • 核心表每日固定稽核:主键唯一、关键字段非空、金额非负
  • 新增表上线时批量复制同主题的规则模板,减少重复配置
  • 按分区与周期调度:T+1 表每天校验昨日分区,小时表校验最新分区
  • 把规则结果写入稽核表,供质量看板统计通过率与覆盖率
  • 事故复盘中把新发现的异常固化成规则,防止同类问题复发

规则配置示例

规则配置示例
{
  "rule_id": "dq_order_pk_uniq",
  "table": "dwd_trade_order_detail_di",
  "partition": "dt=2026-10-11",
  "type": "uniqueness",
  "keys": ["order_id", "item_no"],
  "threshold": {"max_fail_rows": 0},
  "level": "P1",
  "owner": "trade-dw"
}

规则类型与判定

类型判定方式典型阈值误报风险
唯一性按业务键分组计数失败行数为 0低
完整性空值或空字符串计数关键字段为 0低
有效性枚举或正则匹配越界行数占比小于千分之一中,源端格式变化易误报
一致性两表勾稽差异差异率小于千分之五低
波动性与基线比较偏离区间即告警高,需业务日历修正
规则引擎的价值在闭环:每条告警都能追到责任人与处理记录;只把告警发到群里而没有归属,规则再多也不会被处理。
规则全部对全量数据执行时,稽核本身会占用大量计算资源:按重要性分级,波动类规则可先在小分区或采样上跑。
规则要能版本化:阈值调整与规则停用都应有记录,否则某天不再告警时没人说得清是规则被关闭还是数据真的变好了。

易错点

  • 规则全量跑大表,稽核任务本身耗资源并拖慢下游窗口,需分级与采样
  • 规则的责任人字段留空,告警发出后无人认领,问题在群里被反复转发
  • 阈值只按某天数值设定,业务波动期出现批量误报,很快被所有人忽略
  • 规则结果表不区分未通过与未执行,平台故障被记成数据质量问题,统计口径失真

数据来源与参考

  • 行业数据质量平台实践(规则配置化思路)
  • Apache Griffin 项目文档(数据质量规则模型)
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌