机制上如何保证数据质量
1. 建立数据质量评价体系
1.1 选取评估方向:
完整性/一致性/准确性/时效性
1.2 用指标量化评估方向:
完整性:记录数和唯一值
一致性:数据和数据定义是否一致,一致性的比率
准确性:数据值是否在预期范围,数据波动情况
时效性:数据产出时间
数据质量六维定义:
- 完整性: 衡量所必须得数据的完整程度, 如不能缺失的空值检查
- 唯一性: 针对某个数据项或某组数据, 没有重复的饿数据值. 值必须是唯一的, 如id类的数据
- 及时性: 对数据更新频率的满足程度, 针对用户对信息获取的时间及时性要求, 确保数据及时更新
- 有效性: 对于数据的值/格式要求符合数据定义或业务定义的要求, 如某些电话/邮箱的格式
- 准确性: 确保数据必须反应真实的业务内容. 不仅仅与原始文本或单据比较准确性, 也可以是数据源头与目标作比较
- 一致性: 数据元素的类型和含义必须一致和清晰, 如数据迁移或加工的前后, 数据表大小一致性比对
1.3 建立数据质量评价体系:
对整个流通链条上的数据质量进行量化指标输出, 数据质量的预警
1.4 定位问题:
问题定位与解决, 避免质量问题扩大
2. 实现数据质量信息的采集/分析/监控
2.1 在数据流转环节的关键点配置数据采集规则,设置埋点
2.2 采集数据质量监控信息,输出数据质量指标体系数据
2.3 分析数据处理流程的数据质量,评估数据质量
检核任务规则项说明:
及时性:
新增记录条数 – 平均值,最大值,最小值,总和,方差波动
新增存储量 – 平均值,最大值,最小值,总和,方差波动
总存储量 – 平均值,最大值,最小值,总和,方差波动一致性:
表规范 –表命名规范, 主键, 分区, 是否有注释, 字段个数
增量记录数一致性
全量记录数一致性完整性:
字段空值检核 – 空值率, 空值个数, 波动率
字段非空值检核 – 非空值率, 非空值个数, 波动率唯一性:
字段重复值检核 – 重复值率, 重复值个数, 波动率
字段唯一值检核 – 唯一值率, 唯一值个数, 波动率有效性:
字段不符合数据格式检核(邮箱,电话, id以…开头) – 不符合格式率, 不符合格式个数, 波动率
字段符合数据格式检核 – 符合格式率, 符合格式个数, 波动率
字段不符合值域检核(字段值不符合码表的定义约束) – 不符合值域个数, 不符合值域率, 波动率
字段符合值域检核 – 符合值域个数, 符合值域率, 波动率
字段规范检核 – 是否符合数据类型, 命名是否规范, 是否包含注释准确性:
字段值检核 – 平均值,最大值,最小值,总和,方差波动
触发标准
表规范:
表命名规范: 正则
表分区: 是否分区新增记录数:
近30日新增记录数的平均值小于15000条字段空值:
空值率: 小于2%字段规范:
是否包含注释
3. 建立数据质量的持续改进工作机制
3.1 发现问题 – 信息问题/技术问题/流程问题/管理问题
3.2 追溯问题原因 – 对数据理解有偏差(口径定义)/etl bug/数据流转设计不合理,操作不当,缺乏校验
3.3 形成机制 – 指标管理平台/建立数据标准/总结文档,规范流程
3.4 持续跟踪
3.5 优化机制
4. 完善元数据管理
4.1 业务元数据:
数据值:175
单位:cm
指标:平均身高
阈值:80-250
4.2 技术元数据:
数据库类型:MySQL
数据库连接:jdbc:mysql://xxxx
实例名:xxx
表名:xxx
数据接口:http://xxx
4.3 操作元数据:
创建人:张三
创建时间
修改时间
4.4 管理元数据:
数据权限:公开
安全等级:安全