笔者在长期的数据仓库、CRM等数据分析项目的开发工作中发现,低下的数据质量往往造成开发出来的系统与用户的预期大相径庭;很多数据仓库、CRM项目应用程度不高或后失败,归根结底都是数据质量不高造成的。数据质量不高已经成为困扰此类项目的开发人员与用户的一个严重问题。为了提高大家对数据质量的认识,使企业领导重视数据质量的管理工作,笔者试图对数据质量及数据质量管理做一个较全面的介绍。
  1.何谓数据质量
  何谓数据质量可从两个方面来理解:
  1.1.数据本身的数据质量
  数据的真实性。
  数据必须真实准确的反映实际发生的业务。
  数据的完备性。
  数据的完备性是说数据是充分的,任何有关操作的数据都没有被遗漏。
  数据的自洽性。
  数据并不是孤立存在的,数据之间往往存在着各种各样的约束,这种约束描述了数据的关联关系。数据必须能够满足这种数据之间的关联关系,而不能够相互矛盾。
  数据的真实性、完备性、自洽性是数据本身应具有的属性,称为数据的质量,是保证数据质量的基础。
  除了数据的质量外,还有我们在利用和存贮数据的过程中所产生的数据质量,包括使用质量、存贮质量和传输质量,称之为过程质量。
  1.2.数据的过程质量
  数据的使用质量
  数据的使用质量是指数据被正确的使用。再正确的数据,如果被错误的使用,不可能得出正确的结论。
  数据的存贮质量
  数据的存贮质量是指数据被安全的存贮在适当的介质上。所谓安全是指采用了适当的方案和技术来抵制外来的因素,使数据免受破坏,备份是我们常使用的技术,包括异地备份和双机备份等,美国的9.11事件和2004年底发生的印度洋海啸事件使越来越多的企业领导意识到备份尤其是异地备份的重要性;所谓存贮在适当的介质上是指当需要数据的时候能及时方便的取出。
  数据的传输质量
  数据的传输质量是指数据在传输过程中的效率和正确性。在现代信息社会中,数据在异地之间的传输越来越多,保证传输过程中的高效率和正确性非常重要。
  2.数据质量和数据一致性
  在工作中我们发现,很多用户甚至一些数据仓库项目的开发人员经常将数据质量和数据仓库项目开发中的ETL过程的数据一致性混为一谈,错误的认为数据仓库项目(也即ETL过程)能够修复数据以提高数据质量,其实数据质量和ETL过程的数据一致性是两个不同的概念。
  ETL过程的数据一致性是指根据相同的业务理解(基于源系统模型和基于数据仓库模型),在源系统查询和统计的信息与在数据仓库中得到的结果在各个细节层次(包括明细层次)上都是相同的。数据一致性是ETL过程必须保证的。
  数据质量是存在于企业的源系统中的,如常见的客户代码的不规范,同一个客户在不同的系统中(例如业务处理系统和财务系统)有不同的代码,甚至同一个客户在同一个系统中也有不同的代码,以保险公司的业务处理系统为例,同一个客户先后在同一个保险公司投保,不同的业务员可能会输入不同的客户代码;更常见的是那些没有实现大集中的分布式的应用,同一个客户(如工商银行)在不同的分公司(如河南分公司和湖北分公司)投保,业务员很可能会输入不同的代码;再如,在业务处理系统中,有些录入人员为了录入的方便,常常将一些内容不输或者采用默认值,造成一些重要录入信息的缺失或错误。这些数据质量问题对我们的数据分析系统造成严重的干扰和破坏。
  数据仓库项目虽然不能够修复数据以提高数据质量,但能发现存在的部分问题从而提醒用户哪些数据是有质量问题的,给出用户一些改进的建议,同时在分析和决策时应降低对这些数据的依赖程度,也可以提供辅助的方法跟踪、监测数据质量问题。
  3.数据质量的重要性
  数据信息是企业重要的战略资源,合理有效的使用正确的数据能指导企业领导作出正确的决策,提高企业的竞争力。不合理的使用不正确的数据(即差的数据质量)可导致决策的失败,正可谓差之毫厘、谬以千里。
  现在很多大型企业已意识到数据信息和数据质量的重要性,专门成立了数据中心来管理数据方面的工作。