4. 质量规则基础

在工程分析平台中,质量规则是保障指标可信度的第一道防线。要设计有效的质量规则,必须先理解数据质量的四个核心维度——完整性、准确性、一致性、及时性。每个维度对应不同的数据异常模式,需要匹配差异化的规则类型。

4.1 数据质量四维度定义

四个维度从不同角度刻画数据健康状态,下表总结了各维度的关注焦点与典型问题场景:

维度 关注焦点 典型问题场景 业务影响
完整性 数据是否缺失、空值、记录不完整 用户注册信息缺少手机号;订单表缺少支付时间 无法完成关键分析或流程中断
准确性 数据是否真实反映客观事实 销售额多记一位小数;GPS坐标漂移 决策依据错误,误导业务判断
一致性 数据在不同系统或时间点是否矛盾 CRM中客户等级与订单系统不一致;同指标不同口径 跨系统对账失败,数据可信度下降
及时性 数据是否在预期时间内到达或更新 实时大屏延迟超过5分钟;日报数据次日仍未产出 监控失效,无法及时发现异常
实践要点: 四维度并非孤立存在。例如,字段缺失(完整性)可能导致聚合结果不准确(准确性);数据延迟(及时性)可能引发上下游口径不一致(一致性)。规则设计时需考虑维度间的连锁效应。

4.2 质量规则类型体系

基于四维度,工程分析平台通常将质量规则划分为以下六大类型。每种规则类型对应特定的检测逻辑和配置方式:

  • 空值检测规则: 检查字段是否为NULL或空字符串。适用于完整性维度,如“用户ID不可为空”。
  • 值域检测规则: 检查数据是否在预期范围内(数值区间、枚举值列表、格式正则)。适用于准确性维度,如“年龄在0~150之间”。
  • 唯一性检测规则: 检查字段或组合是否重复。适用于完整性/一致性维度,如“订单号全局唯一”。
  • 参照完整性规则: 检查外键关联是否存在、主表记录是否被引用。适用于一致性维度,如“订单中的用户ID必须在用户表中存在”。
  • 波动检测规则: 检查指标值相比历史周期或阈值的波动幅度。适用于准确性/及时性维度,如“日活跃用户环比波动不超过±20%”。
  • 时效性规则: 检查数据到达时间、更新时间是否满足SLA。适用于及时性维度,如“实时数据延迟不超过60秒”。
规则类型与维度映射关系: 一种规则类型可能覆盖多个维度。例如,波动检测规则既能发现数据突变(准确性),也能发现数据停止更新(及时性)。配置时建议以“检测目标”为主维度,同时标注影响维度。

4.3 质量规则配置流程

在工程分析平台中,质量规则的配置通常遵循以下步骤:

  1. 定义数据对象: 选择需要监控的表、字段或指标。
  2. 选择规则类型: 根据数据特征和业务要求,从六大类型中选择。
  3. 设置阈值/参数: 配置具体阈值、枚举值、正则表达式或波动范围。
  4. 绑定告警动作: 设置规则触发后的通知方式(邮件、钉钉、平台消息)。
  5. 配置执行周期: 设定规则检测频率(实时、每小时、每日)。
  6. 发布与验证: 上线前使用历史数据回测,确认规则有效性。

4.4 质量规则体系架构图

下图展示了质量规则体系在工程分析平台中的分层架构,从数据源到规则引擎再到告警与修复:

质量规则体系架构图 质量规则体系分层架构 数据源层 业务数据库 | 日志流 | 消息队列 | 外部API | 离线数仓 规则引擎层 空值检测 值域检测 唯一性检测 参照完整性 波动检测 时效性 质量评估与告警层 质量评分 | 异常记录 | 告警通知 | 趋势分析 修复与反馈层

4.5 规则配置示例:波动检测规则

波动检测规则是工程分析平台中最常用的规则类型之一。以下是一个针对“日活跃用户(DAU)”指标的波动检测规则配置示例:

{
  "ruleName": "DAU日环比波动检测",
  "dataObject": {
    "table": "app.dau_summary",
    "field": "dau_count",
    "partition": "dt"
  },
  "ruleType": "FLUCTUATION",
  "parameters": {
    "comparisonPeriod": "DAY_OVER_DAY",
    "upperThreshold": 0.20,
    "lowerThreshold": -0.20,
    "minSampleSize": 7,
    "excludeWeekend": false
  },
  "schedule": {
    "cron": "0 30 1 * * ?",
    "timezone": "Asia/Shanghai"
  },
  "actions": [
    {
      "type": "NOTIFY",
      "channels": ["email", "dingtalk"],
      "recipients": ["data-team@company.com"]
    },
    {
      "type": "TAG",
      "tagValue": "异常波动"
    }
  ]
}
避坑提示: 波动检测的阈值设置不宜过紧或过松。建议先使用至少30天的历史数据计算标准差,以“均值±3σ”作为初始阈值,上线后根据误报率逐步调整。对于节假日、大促等特殊日期,建议配置独立的波动规则或排除周期。

4.6 质量规则与指标口径的协同关系

质量规则不是孤立存在的,它与指标口径配置紧密关联。在工程分析平台中,两者协同体现在以下方面:

  • 口径变更触发规则重检: 当指标口径(如计算逻辑、过滤条件)发生变更时,平台自动触发关联质量规则的重新验证。
  • 规则异常反哺口径优化: 质量规则检测到的持续异常(如某字段空值率突然升高)可能指向口径定义中的逻辑缺陷。
  • 统一元数据管理: 口径与规则共享同一套元数据模型,避免“口径用A字段、规则检查B字段”的不一致问题。

下图展示了指标口径与质量规则在元数据层的协同配置关系:

指标口径与质量规则协同关系图 指标口径与质量规则协同配置关系 统一元数据仓库 字段映射 | 口径定义 | 规则绑定 指标口径配置 计算逻辑 过滤条件 质量规则配置 检测维度 阈值参数 口径变更 → 规则重检 & 规则异常 → 口径优化

4.7 本章小结

数据质量四维度(完整性、准确性、一致性、及时性)是质量规则设计的理论基础。六大规则类型(空值检测、值域检测、唯一性检测、参照完整性、波动检测、时效性)覆盖了四维度的主要检测场景。在工程分析平台中,质量规则与指标口径通过统一元数据仓库实现协同配置,确保“口径定义”与“质量保障”形成闭环。