数据质量
互联网是一个建立在数据之上的服务行业,数据质量的好坏直接影响到企业的生存能力和竞争力。如果数据质量不佳,便容易给企业带来以下危害:
- 干扰运营分析、影响决策
- 影响算法模型质量,导致服务不够智能化
- 耗费人力,分析师、算法工程师、数据科学家因为数据质量问题推倒工作重来
数据质量标准
- 完整性
数据的记录和信息是否完整。如字段信息是否完整、有没有因上游系统出问题而导致的数据丢失、有没有出现正常 100w 的数据今天却没有数据的情况等。
- 准确性
数据的记录是否正确。简单的如是否出现常识性错误(年龄大于 200 岁,收货金额为负值等),电话号码、邮箱、ip 等是否符合规范,枚举值是否正确等等。复杂一点的如基于维度的统计指标有没有问题,如平均值、总和、按照枚举值 group by 数据分布有没有异常等。
- 及时性
数据产出是否及时。数仓团队加工数据需要指定几点前必须产出并交给下游业务和相关分析人员。一般决策分析师需要分析前一日的数据(T+1),如果数据隔几天才能看到,就会失去分析数据的价值。而某些业务甚至有小时级别以及实时的需求,及时性要求也就更高了。
- 一致性
企业数仓可能存在分支,同一份数据在不同地方需要保持一致;对于一些表的值可能参照另外一些表需要保持一致;对于表的字段类型以及值也需要保持一致(如地点写上海还是上海市,性别是 f、m 还是 0、1 标示等等)。
如何提升数据质量
Step 1:事前定义数据的监控规则
- 数据质量需求
- 下游主动发现问题、数据产品收集、监控事后问题优化
- 提炼规则
- 梳理对应指标、确定对象(多表、单表、字段)、通过影响程度确定资产等级、质量规则制定
Step 2:事中监控和控制数据生产过程
- 质量监控和工作流无缝对接
- 支持定时调度
- 强弱规则控制 ETL 流程
- 对脏数据进行质量清洗
Step 3:事后分析和问题跟踪
- 邮件短信报警(相关问题订阅)
- 稽核报告查询
- 数据质量报告的概览、历史趋势、异常查询、数据质量表覆盖率
- 问题分析
- 异常进行评估、严重程度、影响范围确定、问题分类
- 表打分和质量趋势
- 表的打分、表的质量趋势、表异常数据查询、对项目外提供表质量查询。
- 报警问题跟踪处理
- 数据质量事件、故障定义、故障处理和定级
要想真正解决数据质量问题,应该从需求开始
- 明确业务需求并从需求开始控制数据质量
- 建立数据质量管理机制
- 探查数据内容、结构和异常
- 建立数据质量度量并明确目标
- 设计和实施数据质量业务规则
- 将数据质量规则构建到数据集成过程中
- 检查异常并完善规则
- 对照目标,监测数据质量
- 对不同数据的数据问题分类处理
- 历史数据
- 用数据清洗的办法来解决,清洗的过程要综合使用各类数据源,提升历史数据的质量。
- 当前数据
- 当前数据的问题,需要通过从问题定义、问题发现、问题整改、问题跟踪、效果评估 5 个方面来解决
- 未来数据
- 未来数据的处理,一般要采用做数据规划的方法来解决,从整个企业信息化的角度出发,规划统一企业数据架构,制定企业数据标准和数据模型。借业务系统改造或者重建的时机,来从根本上提高数据质量
- 历史数据
通过对不同时期数据的分类处理,做到事前预防、事中监控、事后改善,有助于从根源上解决数据质量问题,为企业的发展带来突破和创新。