数据质量六性评估体系
请介绍大数据场景下数据质量评估的六个维度(六性),以及如何构建自动化的数据质量监控体系。
回答
我还是少年
一、数据质量六性:
1. 完整性(Completeness):
- 数据是否存在缺失
- 指标:空值率、缺失记录数
- 规则:
order_amount IS NOT NULL的比例>99%
2. 准确性(Accuracy):
- 数据是否真实反映客观事实
- 指标:偏差率、异常值比例
- 规则:
amount > 0、age 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数据质量库)