做过数据产品的人都会知道,质量高的数据对于产品的意义。笔者在之前曾经历过数据质量管理的具体功能设计,算是较为完整地感受过数据质量管理过程。所以在此简单复盘下经验,借此抛砖引玉。
战战兢兢地写下标题,得意下“清醒”这个词用得真是独树一帜,跟外面那些妖艳贱货好不一样。我们常常说人要时刻保持清醒,这样才能不被假象所蒙蔽。那数据其实更需要这点,我们需要透过数据挖掘本质,如果数据是不具备完整人格的,缺失完整性、规范性、一致性等维度,那么我们看到的本质也是偏差的。开篇先鬼扯一下,详情请往下滑~
基本概念
数据质量管理是指为了满足信息利用的需要,对信息系统的各个信息采集点进行规范,包括建立模式化的操作规程、原始信息的校验、错误信息的反馈、矫正等一系列的过程。
· 数据质量管理不是一时的数据治理手段,而是循环的管理过程。
· 数据质量管理不仅包含了对数据质量的改善,同时还包含了对组织的改善。
为什么有这么多人强调改善数据质量管理的重要性,用一种很抽象的比喻描述,如果把整个数据应用比作人体的话,那好的数据就相当于新鲜和沸腾的血液,能让我们的身体充满活力,高效地工作思考。而质量差的血液携带废物和毒素,随着毒素越积越多,血液以及血管就会发生病变,血液流经的全身各处器官也会大受影响。如果非要要具体的数据证明,我摘取了一些专家的统计:
· 据专家估计,由于用户拒绝不可靠的数据,导致多达70%的数据仓库项目遭到失败。
· 据专家估计,糟糕的数据通过使收入受损而会耗费商业机构多达10%~20%的操作总预算。而且,IT部门预算的40%50%之多可能都花在了纠正由糟糕的数据所引起的错误上(English,1999)。
· 专家认为,由于客户的死亡、离婚、结婚或调离,客户文件中的记录在一个月之内会有2%变得过时(Betts,2002)。
影响因素
那什么会影响数据质量呢?其实简单就分为2个因素。
· 客观因素:在数据各环节流转中,由于系统异常和流程设置不当等因素,从而引起的数据质量问题。
· 主观因素:在数据各环节处理中,由于人员素质低和管理缺陷等因素,从而操作不当而引起的数据质量问题。
在此附上数据的生命周期图,包括各环节的数据流转和数据处理。
评估维度
那怎么样才算质量好的数据呢?借用数据质量评估六要素,顺便附上自己的一些解析:
· 完整性 Completeness
数据是完整不缺失的。例如人员信息完整涵盖性别、年龄等。
· 规范性 Conformity
数据是规范统一的。例如时间信息都以yyyy-mm-dd格式存储。
· 一致性 Consistency
同源或跨源的数据是一致不冲突的。例如同一个人在不同源取过来的性别都是一致的。
· 准确性 Accuracy
数据是准确合理的。例如年龄在合理范围内。
· 唯一性 Uniqueness
数据是唯一不重复的。例如同一个ID没有重复记录。
· 关联性 Integration
数据的关联是不缺失的。例如两张表建立的关联关系存在,不丢失数据。
具体工作
如何通过具体工作来贯彻落实数据质量管理呢?由于数据质量管理是贯穿数据整个生命周期的,所以根据数据的各环节进行分点描述:
· 数据产生---控制外部数据源
(1)非开放式输入,避免用户自己输入,尽量提供用户选择项。设定字典表,例如性别不允许输入(男、女、未知)以外的内容
(2)开放式输入,增加提示或者校验。例如设定临界值,例如年龄填了-1或者200,不允许输入。
· 数据接入---保持多点录入一致
建立统一的数据体系,例如指标(度量)、口径(维度)。
· 数据存储---保持数据结构统一
建立标准的数据结构,例如字段格式,系统提前定义好一种时间默认格式为yyyy-mm-dd。
· 数据处理---保持处理流程一致,该点包括数据稽核和数据清洗
按照标准的处理流程,例如统一的清洗规则等。
· 数据输出---保持数据结构统一
对数据处理后的结果进行保存时,按照数据存储的要求,进行标准化的统一管理。
· 数据展示---持续监测分析数据
设立监测规则不断发现问题,通过解决问题不断改进规则。
数据稽核
(1)定义
数据稽核是指实现数据的完整性和一致性检查,提升数据质量,数据稽核是一个从数据采集,预处理,比对,分析,预警,通知,问题修复的完整数据质量管控链条。
(2)校验规则
· 关联性检查
两个数据表的key值关联是否存在。
· 行级别
两个数据表的数据量是否一致。
· 列级别
两个数据表的表结构是否一致,如字段数量、字段类型和宽度等是否一致。
· 内容级别
两个数据表的内容是否一致。
其一数据表的内容是否缺失。
(3)校验流程
1、配置校验规则,例如字段映射等。
2、配置调度规则,例如调度频率等。
3、配置报表模板,例如稽核结果等。
数据清洗
(1)定义
数据清洗是指发现并纠正数据文件中可识别的错误的最后一道程序,包括检查数据一致性,处理无效值和缺失值等。与问卷审核不同,录入后的数据清理一般是由计算机而不是人工完成。
(2)清洗规则
1)缺失值处理
根据同一字段的数据填充,例如均值、中位数、众数等。
根据其他字段的数据填充,例如通过身份证件号码取出生日期等。
设定一个全局变量,例如缺失值用“unknown ”等填充。
直接剔除,避免缺失值过多影响结果。
建模法,可以用回归、使用贝叶斯形式化方法的基于推理的工具或决策树归纳确定。
2)重复值处理
根据主键去重,利用工具去除重复记录。
根据组合去重,编写一系列的规则,对重复情况复杂的数据进行去重。例如不同渠道来的客户数据,可以通过相同的关键信息进行匹配,合并去重。
3)异常值处理
根据同一字段的数据填充,例如均值、中位数、众数等。
直接剔除,避免异常值过多影响结果。
设为缺失值,可以按照处理缺失值的方法来处理。
4)不一致值处理
从根源入手,建立统一的数据体系,例如指标(度量)、口径(维度)。
从结果入手,设立中心标准,对不同来源数据进行值域对照。
5)丢失关联值处理
重新建立关联。