<< ..

如何管控数据质量

发布时间:

为什么需要关注数据质量

在数据处理过程中,可能会因为各种原因导致数据异常,数据处理链路上任意一个环节异常都可能导致最终数据异常,例如:

  • 数据采集问题
    • 数据丢失
    • 数据重复
    • 数据延迟
    • 数据格式变动、不一致
  • 数据处理程序问题
    • 程序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 时效性

  1. 时效性表示数据真实产生到被记录花了多少时间。
  2. 时效性也可同时代表埋点的“生命周期”

案例: 断网情况下,用户触发埋点不会发送到服务器。用户联网后,历史堆积埋点会一次性发送,埋点时间被记录为服务器最终接收的时间。 不同埋点有各自生命周期,比如某埋点只存在于某个版本期间。

Validity 有效性

有效性表示数据是否符合某种定义的语法,包括格式、类型、范围。

案例: 相同字段在不同业务线可能会被定义为不同的数据类型,比如同样表示布尔值,可能存在”T/F”,”0/1”,”True/False”等几种不同情况。

Accuracy 精确性

针对分析的字段列枚举值是否符合预期。

案例: 协商分析使用的字段列预期枚举[A, B, C]三种值,但是时间可能存在[A, B, C, D, ...]等其他情况。

Consistency 一致性

一致性表示存在两个或多个数据能描述同一个事物,这些数据描述的结果应该是没有差异的。

案例: 行为逻辑上连续的两个埋点,PV值应该差不多,互相可以作为参考。