CodeWalk

数据质量六性评估体系

作者:我还是少年 · 2026-05-30 12:55

请介绍大数据场景下数据质量评估的六个维度(六性),以及如何构建自动化的数据质量监控体系。

回答

我还是少年

一、数据质量六性:

1. 完整性(Completeness):

  • 数据是否存在缺失
  • 指标:空值率、缺失记录数
  • 规则:order_amount IS NOT NULL的比例>99%

2. 准确性(Accuracy):

  • 数据是否真实反映客观事实
  • 指标:偏差率、异常值比例
  • 规则:amount > 0age BETWEEN 0 AND 150

3. 一致性(Consistency):

  • 不同系统/表之间数据是否一致
  • 指标:跨表比对差异率
  • 规则:订单表的总额=支付表的总额(Pair Count比对)

4. 及时性(Timeliness):

  • 数据是否在预期时间内可用
  • 指标:延迟时间、SLA达标率
  • 规则:埋点数据延迟<5分钟(99%分位)

5. 唯一性(Uniqueness):

  • 数据是否重复
  • 指标:重复率、主键唯一性
  • 规则:event_id唯一、order_id主键无重复

6. 有效性(Validity):

  • 数据是否符合业务规则和格式
  • 指标:格式错误率
  • 规则:手机号11位数字、邮箱含@、日期格式YYYY-MM-DD

二、自动化监控体系:

数据源 → 质量检查 → 分级告警 → 问题跟踪 → 修复补偿

1. 配置规则:

table: dwd_order
dimensions:
  - dimension: completeness
    metric: null_rate
    column: order_amount
    threshold: 0.01  # 空值率不超过1%
    severity: CRITICAL

  - dimension: timeliness
    metric: max_delay_minutes
    threshold: 10
    severity: WARN

2. 检查方式:

  • 离线检查:Hive SQL(每日凌晨执行)
    SELECT COUNT(*) / (SELECT COUNT(*) FROM dwd_order) AS null_rate
    FROM dwd_order WHERE order_amount IS NULL;
    
  • 实时检查:Flink SQL(每条记录校验)
  • 全量检查:Spark Job定期全量扫描

3. 告警通道:

  • 钉钉/企微机器人
  • 邮件
  • 短信/电话(严重级别)

4. 工具:

  • Apache Griffin(开源数据质量平台)
  • DQ规则引擎(自研)
  • Great Expectations(Python数据质量库)