机制上如何保证数据质量

1. 建立数据质量评价体系

1.1 选取评估方向:

完整性/一致性/准确性/时效性

1.2 用指标量化评估方向:

完整性:记录数和唯一值

一致性:数据和数据定义是否一致,一致性的比率

准确性:数据值是否在预期范围,数据波动情况

时效性:数据产出时间

数据质量六维定义:

  1. 完整性: 衡量所必须得数据的完整程度, 如不能缺失的空值检查
  2. 唯一性: 针对某个数据项或某组数据, 没有重复的饿数据值. 值必须是唯一的, 如id类的数据
  3. 及时性: 对数据更新频率的满足程度, 针对用户对信息获取的时间及时性要求, 确保数据及时更新
  4. 有效性: 对于数据的值/格式要求符合数据定义或业务定义的要求, 如某些电话/邮箱的格式
  5. 准确性: 确保数据必须反应真实的业务内容. 不仅仅与原始文本或单据比较准确性, 也可以是数据源头与目标作比较
  6. 一致性: 数据元素的类型和含义必须一致和清晰, 如数据迁移或加工的前后, 数据表大小一致性比对

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 管理元数据:

数据权限:公开

安全等级:安全