如何管控数据质量
发布时间:为什么需要关注数据质量
在数据处理过程中,可能会因为各种原因导致数据异常,数据处理链路上任意一个环节异常都可能导致最终数据异常,例如:
- 数据采集问题
- 数据丢失
- 数据重复
- 数据延迟
- 数据格式变动、不一致
- 数据处理程序问题
- 程序bug导致数据产出异常
- 基础设施问题导致程序运行异常(夜间调度任务崩溃)
- 数据存储问题
- 磁盘问题导致丢数据
- 技术栈迁移格式转换丢数据
- 新增字段未映射
如何衡量数据质量
对数据质量的衡量主要参考数据质量检核管理PDCA方法论,并结合我们实际情况去制定一个衡量参考标准:
THE SIX PRIMARY DIMENSIONS FOR DATA QUALITY ASSESSMENT Defining Data Quality Dimensions
Completeness 完整性
完整性表示数据是否完整,是否有缺失,可以用0-100%的数值表示。
案例: 假设我们想统计某个售卖的课程包内的视频受欢迎程度。加入课程包内共有10个视频,但是实际统计只发现用户群点播只有5个视频,对于此需求而言数据完整性有50%。 后续就需要去搞清楚是否因为其它原因导致从未被点播的5个视频是否有其他问题。 任何需求要首先评估范围和阈值作出初始判断。
Uniqueness 唯一性
唯一性表示同样的数据只出现一次。
案例: 埋点会发生重发问题,比如同一个按钮用户只做了一次触发,PV为1。但是因为埋点重发问题我们收到相同数据100条,PV会被误计为100。 埋点重复可以依赖埋点内的
UUID
字段判断是否重复和去重。
Timeliness 时效性
- 时效性表示数据真实产生到被记录花了多少时间。
- 时效性也可同时代表埋点的“生命周期”
案例: 断网情况下,用户触发埋点不会发送到服务器。用户联网后,历史堆积埋点会一次性发送,埋点时间被记录为服务器最终接收的时间。 不同埋点有各自生命周期,比如某埋点只存在于某个版本期间。
Validity 有效性
有效性表示数据是否符合某种定义的语法,包括格式、类型、范围。
案例: 相同字段在不同业务线可能会被定义为不同的数据类型,比如同样表示布尔值,可能存在”T/F”,”0/1”,”True/False”等几种不同情况。
Accuracy 精确性
针对分析的字段列枚举值是否符合预期。
案例: 协商分析使用的字段列预期枚举
[A, B, C]
三种值,但是时间可能存在[A, B, C, D, ...]
等其他情况。
Consistency 一致性
一致性表示存在两个或多个数据能描述同一个事物,这些数据描述的结果应该是没有差异的。
案例: 行为逻辑上连续的两个埋点,PV值应该差不多,互相可以作为参考。