背景
在近期的项目当中,我们为客户落地实施了数据资产平台。随后,在数据平台中接入了客户子公司的一个业务系统的明细数据。客户希望在我们的数据平台上通过数据探索和数据分析,来挖掘一些业务价值和业务创新点。
当我们拿到数据开始进行一些初步探索的时候,发现导入平台的数据质量存在一定的问题:例如一些用于数据分析的关键字段的值为空、一些本应该有主从关系的数据对应不上、数据分类混乱等。这些问题直接影响到了对业务数据的分析和价值挖掘。因此,我们决定先对这份业务数据进行一次质量评估。如果评估的结果太差,不能做太多有价值的数据分析,那么我们的工作方向可能就需要转变为帮助客户制定整改数据质量的计划和方案。
数据质量问题
什么是质量
关于质量是有个一个标准定义的:一组固有特性满足明示的、通常隐含的或必须履行的需求或期望(要求)的程度。这里面包含了两层意思,一个是说质量其实是一组特性,另一个是说质量需要满足需求或期望。所以如果从数据分析的角度来说数据质量,就是看当前数据的特性能否满足我们做数据分析或挖掘这个需求。
质量问题的来源
数据问题的来源可能产生于从数据源头到数据存储介质的各个环节。在数据采集阶段,数据的真实性、准确性、完整性、时效性都会影响数据质量。除此之外,数据的加工、存储过程都有可能涉及对原始数据的修改,从而引发数据的质量问题。所以,技术、流程、管理等多方面的因素都有可能会影响到数据质量。
在企业中,随着企业业务的增长,数据也是一个增量积累的过程。随着数据类型、数据来源的不断丰富以及数据数量的快速增长,企业在数据管理工作和数据流程中面临越来越多的数据质量问题。而且数据质量的管理并没有被企业重视起来,其根本原因还是ROI并没有那么明显。
数据质量管理相对来说成本比较高。因为它涉及到企业数据标准的制定、规范的落地、生命周期的管理等多个环节。从收益上来说,数据质量的效益和结果并不是十分明显,大部分企业不会把数据质量作为KPI。在企业的不同系统中,业务领域的关键指标不一致,数据无法共享导致出现数据孤岛,大量数据无法关联,并且有明显的数据冗余等问题,还有数据的维护需要投入大量的人员、时间、软硬件成本。所以数据的质量管理往往被会边缘化甚至趋向于无。
数据质量评估
那么我们如何对一份数据进行质量评估呢?这是一个比较难以回答的问题。因为数据质量本身有这么几个问题。首先是数据质量定义不一致,人们对数据质量的理解并没有一个参考标准或者标准的定义,所以人们理解的数据质量就会呈现出多样性,而无论是数据评估体系还是数据质量控制体系,都离不开关于数据质量的清晰定义。其次,没有权威性的数据质量标准模型或参考模型。再者,没有系统化的数据质量评估指标,也没有对数据质量评估的指标形成一个量化的标准。所以现在多数对于数据质量的研究都是针对特定领域或特定问题的研究,并不具有普适性,很难推广成为标准化的体系或模型。
那我们能不能像CMMI(能力成熟度模型, Capability Maturity Model Integration)和 AMM(敏捷成熟度模型,Agile Maturity Model)一样对数据质量建立一个模型,我们暂且称之为DQAM(数据质量评估模型,Data Quality Assessment Model)。
首先思考一下,在进行数据质量评估时我们会选取多个指标,所以很自然会想到借用一下模糊综合评价理论。搜集了一下资料,这里选取以下若干个指标来作为我们的数据质量评价指标(当然,可以根据实际需要选取其他指标,指标的数量也可多可少):
- Completeness:完整性,用于度量哪些数据丢失了或者哪些数据不可用
- Conformity:规范性,用于度量哪些数据未按统一格式存储
- Consistency:一致性,用于度量哪些数据的值在信息含义上是冲突的
- Accuracy:准确性,用于度量哪些数据和信息是不正确的,或者数据是超期的
- Uniqueness:唯一性,用于度量哪些数据是重复数据或者数据的哪些属性是重复的
- Integration:关联性,用于度量哪些关联的数据缺失或者未建立索引
那么评估模型应该有这么几个要素:
- Dataset:被评估的数据集,对于关系型数据库来说就是一张表
- Indicators:评估指标,就是上面列出来的6个指标
- Rule:评估规则,与上面的评估指标对应,后续会根据规则的描述来编写脚本。
- Weight:权重,此处的权重是每一条评估规则在全部规则的所占比重
- Expectation:期望,根据每个评估规则给出一个评估前的期望值(0-100)
- Score:结果,每个评估规则应用到数据集后计算出来的结果值(0-100)
那么构造整个模型的过程基本就可以确定下来,首先根据需要选取数据集当中要进行评估的数据视图,再选取所需要的评估指标。下一步需要制定规则集,根据所选的评估指标来制定相应的数据质量评估规则,并确定它们相应的权值和期望值。***一步就是根据规则集来计算结果得分。
对于数据集的N个规则计算出来的得分,***计算其加权平均值,得到质量评估的绝对量化值。用该量化值和期望进行差值比较,可以得出该数据集是比预期的好,还是不如预期。
以上是一个简单的评估模型,目前并没有在实际的场景中应用,当然这个模型的精度并不会很高,也没有处理误差。仅仅提供一个思路,或许质量的评估可以朝着这个方向来进行。
数据质量管理
数据工作流质量管理
下面来谈谈数据质量管理。质量管理前面提到了,涉及到数据工作流的各个环节。数据的工作流可以分为以下几部分:数据产生、加工处理、存储、挖掘和应用。质量管理的前提是在每一个环节建立质量标准。数据的来源包括:业务系统产生的数据、外部系统的数据、手动录入的数据等,从这些源头采集数据,然后经过数据通道进行加工处理(ETL,Extract-Transform-Load),数据进入到数据仓库或数据集市当中。然后业务人员、数据科学家、数据工程师等,会在数据平台对数据进行探索和挖掘,这个过程可能发生在数据仓库,也可能是在数据沙箱中进行,***对数据探索分析挖掘的产出结果,会以数据应用的方式发布出来,具体的形式包括:数据报表、数据门户、OLAP、数据产品、数据服务、智能模型等等。
数据质量监督
除了制定质量标准外,还需要对系统中的数据本身和数据工作流进行监督管理。
对数据系统进行实时监控,监测数据工作环境的服务器软硬件运行状态、性能、磁盘空间、数据库事务、锁、缓冲、会话量、备份等等一系列指标,实施预警机制,并监测一些异常情况的发生。
对数据进行定期校验,除了对数据系统进行实施监控外,还需要对数据进行校验:日常校验、数据抽检、全面校验等。
审核制度也是保证质量的一个重要措施,特别是对于敏感数据和敏感操作。建立数据变更时候的分级审核制度,尤其是一些影响较大或者权限较高的操作。建立审批制度,对于数据的读取,如果涉及到敏感数据,必要时,也需要数据审批或者是数据脱敏。
数据生命周期管理
数据的生命周期从数据规划开始,中间是一个包括产生、处理、部署、应用、监控、存档、销毁这几个步骤并不断循环的过程。随着业务的发展,系统的业务数据类型和业务规范不断变化,一个完备的数据生命周期管理方案还应当包括对系统的优化调整,根据业务系统实际运行情况、新的业务类型和规范、技术改进等调整原有的数据存储迁移策略和访问方式,以满足业务系统发展及新的业务规范需求。数据生命周期管理的目的是对不同阶段的数据采取不同的管理策略用来降低数据管理运营成本,并提高数据质量度,实现数据价值***化的***目的。
总结
数据质量在任何系统当中都是十分重要却容易被忽视的一部分。构建完整的数据质量管理体系,既是支持企业系统稳定运行的基本保障,同时也是企业进行数字化转型、创新的必备条件。