十步法原则解决数据质量问题
一、相关概念
1.1 数据质量
数据的一组固有属性满足数据消费者要求的程度。
1)数据固有属性
- 真实性:即数据是客观世界的真实反映
- 及时性:即数据是随着变化及时更新的
- 相关性:即数据是数据消费者关注和需要的
2)高质量数据满足要求(消费者角度)
- 可得的,当数据消费者需要时能够获取到;
- 及时的,当需要时,数据获得且是及时更新的;
- 完整的,数据是完整没有遗漏的;
- 安全的,数据是安全的,避免非授权的访问和操控;
- 可理解的,数据是可理解和解释的;
- 正确的,数据是现实世界的真实反映。
1.2 数据质量管理
数据质量管理,是指对数据从计划、获取、存储、共享、维护、应用、消亡生命周期的每个阶段里可能引发的各类数据质量问题,进行识别、度量、监控、预警等一系列管理活动,并通过改善和提高组织的管理水平使得数据质量获得进一步提高。
二、评估维度
任何改善都是建立在评估的基础上,知道问题在哪才能实施改进。通常数据质量评估和管理评估需通过以下几个维度衡量。常见的以下维度:
1)完整性
完整性,是指数据信息是否完整,是否存在缺失情况。数据缺失的情况可能是整个数据记录缺失,也可能是数据中某个字段信息的记录缺失。记录的完整性,一般使用统计的记录数和唯一值个数。完整性的另一方面,记录中某个字段的数据缺失,可使用统计信息中的NULL的个数进行审核。一般空值的占比基本恒定,同样可以使用统计的空值个数来计算空值占比,如果空值的占比明显增大,很可能这个字段的记录出现了问题,信息出现缺失。总而言之,完整性可用记录数、均值、唯一值、空值占比等指标来衡量。
2)规范性
规范性,是指记录是否符合规范,是否按照规定的格式存储(例如标准编码规则)。数据规范性审核是数据质量审核中比较重要也是比较复杂的一块。规范性检验主要是检验数据和数据定义是否一致,因此可以通过合规记录的比率来衡量。比如取值范围是枚举集合的数据,其实际值超出范围之外的数据占比,比如存在特定编码规则的属性值不符合其编码规则的记录占比。
3)一致性
一致性,是指数据是否符合逻辑,数据内单项或多项数据间存在逻辑关系。一致性检验,存在逻辑关系的属性之间的校验,比如属性A取某定值时,属性B的值应该在某个特定的数据范围内,都可以通过合规率来衡量。
4)准确性
准确性,用于度量哪些数据和信息是不正确的,或者数据是超期的。准确性可能存在于个别记录,也可能存在于整个数据集上。准确性和规范性的差别在于规范性关注合规,表示统一,而准确性关注数据错误。因此,同样的数据表现,比如数据实际值不在定义的范围内,如果定义的范围准确,值完全没有意义,那么这属于数据错误。
数据的准确性可能存在于个别记录,也可能存在于整个数据集。如果整个数据集的某个字段的数据存在错误,这种错误很容易发现,利用平均数和中位数也可以发现这类问题。当数据集中存在个别的异常值时,可使用最大值和最小值的统计量去审核,或者使用箱线图也可以让异常一目了然。
还有几个准确性的审核问题,字符乱码的问题或者字符被截断的问题,可以使用分布来发现这类问题,一般的数据记录基本符合正态分布或者类正态分布,那么那些占比异常小的数据项很可能存在问题。如果数据并没有显著异常,但仍然可能记录的值是错误的,只是这些值和正常值比较接近而已,这类准确性检验最困难,一般只能与其他来源或者统计结果进行对比来发现问题。
5)时效性
数据从产生到可以查看的时间间隔,也叫数据的延时时长。某些实时分析和决策需要用到小时或者分钟级的数据,这些需求对数据的时效性要求极高,所以及时性也是数据质量的组成要素之一。例如定义某张表在每月最晚达到的日期是几号。
6)唯一性
唯一性,用于度量哪些数据是重复数据或者数据的哪些属性是重复的。即对存在于系统内或系统间的特定字段、记录或数据集意外重复的测量标准。
7)合理性
合理性,是从业务逻辑角度判断数据是否正确。评估方面可参照规范性、一致性做法。
8)冗余性
冗余性,是指多层次数据中是否存在不必要的数据冗余。
9)获取性
获取性,是指数据是否易于获取、易于理解和易于使用。
三、影响因素
影响数据质量的因素主要来源于四方面:信息因素、技术因素、流程因素和管理因素。
1)信息因素
产生这部分数据质量问题的原因主要有:元数据描述及理解错误、数据度量的各种性质(如:数据源规格不统一)得不到保证和变化频度不恰当等。
2)技术因素
主要是指由于具体数据处理的各技术环节的异常造成的数据质量问题。数据质量问题的产生环节主要包括数据创建、数据获取、数据传输、数据装载、数据使用、数据维护等方面的内容。
3)流程因素
是指由于系统作业流程和人工操作流程设置不当造成的数据质量问题,主要来源于系统数据的创建流程、传递流程、装载流程、使用流程、维护流程和稽核流程等各环节。
4)管理因素
是指由于人员素质及管理机制方面的原因造成的数据质量问题。如人员培训、人员管理、培训或者奖惩措施不当导致的管理缺失或者管理缺陷。
四、解决质量问题方法
可以遵从下面的十步法原则(此部分摘自御数坊公开材料)。
4.1 定义业务需求与方法
找出有哪些业务受到数据质量问题的影响,或者由于数据质量的改进将会为企业带来更好的业务效益的需求,评估这些业务需求并按照重要等级排序,作为本次数据质量提升的目标与范围。只有明确了业务需求与方法,才能确保要解决的数据质量问题是与业务需求相关的,从而真正的解决了业务问题。
4.2 分析信息环境
细化已定义的业务需求,识别出业务需求与数据、数据规范、流程、组织和技术(如系统、软件等)之间的关联信息,定义信息生命周期,确定数据来源及范围。通过分析信息环境,不仅可以为后续的原因分析提供帮助,也可以使我们对数据问题及现状有一个更全面、直观的理解与认识。
4.3 评估数据质量
从相关数据源提取数据,围绕已定义的业务需求,设计数据评估维度并利用相关工具完成评估,将数据质量评估结果以图表或报告形式准确的表达出来,使相关领导或业务人员都能够清晰的、直观的了解实际的数据质量情况,确保数据问题是与业务需求相关的,并能够得到相关领导或业务人员的重视与支持。
4.4 评估业务影响
了解低质量数据是如何影响业务的,为什么这些数据很重要,如果改善这些问题会带来哪些业务价值。评估方式的复杂度越高所花费的时间越长,不过与评估效果却并不一定成正比,所以在评估业务影响时也要注意方法的选择。另外,要将业务影响评估结果及时归档,这样,随着时间的推移即便问题被淡化,也能够有迹可查。
4.5 确定根本原因
在纠正数据问题之前要先确定其根本原因,产生问题的根源有很多。不过,有些问题的发生仅是表象,并不一定是导致错误数据的根本原因,所以在分析的过程中,要不断的去追踪数据进行问题定位,确定问题最早出现的根本原因;或者多问自己几遍“WHY”以弄清楚问题的根本原因,进而使问题得到有效的解决,达到治标又治本的效果。
4.6 制定改进方案
通过前面几步详细的问题分析及原因确定,在这一步则可以有针对性的制定出合理的数据质量改进方案,包括对已知数据问题的改进建议及如何预防未来类似错误数据的发生。
4.7 预防未来数据错误
根据解决方案的设计,预防未来错误数据的发生。
4.8 纠正当前数据错误
根据解决方案的设计,解决现有数据问题。这一步更多是”脏活累活”,但对于最终质量目标的达成至关重要。
4.9 实施控制监控
实施持续的监测,确定是否已经达到预期效果。
4.10 沟通行动和结果
对结果和项目进展情况沟通,保证整体项目的持续推进。
五、数据质量产品设计
5.1 数据产品价值
- 完整检核标准梳理方法及指标规则模板。
- 自动化的检核处理及问题通知机制,达到无人值守。
- 提供全面的数据分析机制,加速问题解决。
- 规范的问题管理流程及制度,精确管理问题每个阶段。
- 完善的质量问题解决共享机制,实现数据治理的闭环管理。
5.2 处理问题流程
- 确定规则:数据质量指标
- 发现问题:数据质量检核
- 提出问题:质量问题告警
- 解决问题:质量问题分析
- 归纳问题:问题管理流程
5.3 主要功能模块
1)质量评估
提供全方位数据质量评估能力,如数据的重复性、关联性、正确性、完全性、一致性、合规性等,对数据进行体检进而识别和理解数据质量问题。有评价体系作为参照,需要进行数据的采集、分析和监控,为数据质量提供全面可靠的信息。在数据流转环节的关键点上设置采集点,根据系统对数据质量的要求,配置相应的采集规则,通过在采集点处进行质量数据采集并进行统计分析,就可以得到采集点处的数据分析报告。
2)检核执行
提供配置化的度量规则和检核方法生成能力,提供检核脚本的定时调度执行和第三方调度工具的调度执行功能。
3)质量监控
系统提供报警机制,对检核规则或方法进行阀值设置,对超出阀值的规则进行不同级别的告警和通知。
4)问题管理
对数据问题进行流程处理支持,规范问题处理机制和步骤,强化问题认证,提升数据质量。通过质量评价体系和质量数据采集系统,可以发现问题,之后还需要对发现的问题及时作出反应,追溯问题原因和形成机制,根据问题种类采取相应的改进措施,并持续跟踪验证改进之后的数据质量提升效果,形成正反馈,达到数据质量持续改良的效果。
在源头建立数据标准或接入标准,规范数据定义,在数据流转过程中建立监控数据转换质量的流程和体系,尽量做到在哪发现问题就在哪解决问题,不把问题数据带到后端。
5)质量报告
系统提供了丰富的API可进行定制化数据质量包括开发,另外系统内置了常用质量报告。
6)质量分析
提供多种问题分析能力,包括血统分析,影响分析,全链分析,定位问题产生的根源。
作者:韩锋首发于作者个人公号《韩锋频道》。
来源:宜信技术学院