《2022年数据质量和数据清理在电信数据仓库中的应用宣贯》由会员分享,可在线阅读,更多相关《2022年数据质量和数据清理在电信数据仓库中的应用宣贯(7页珍藏版)》请在金锄头文库上搜索。
1、数据质量和数据清理在电信数据仓库中的应用Data Quality, Data Cleaning and Applying to Telecom Data Warehouse 关键词:数据仓库;数据质量;数据清理;ETL ;构件Keywords: Data Warehouse; Data Quality; Data Cleaning; ETL; Component 摘要: 在研究数据质量问题相关理论的基础上,面对电信企业高质量数据需求,设计了面向电信应用的数据质量控制体系,接着, 详细介绍了包含概念定义层、逻辑规范层和物理实现层三层的数据清理框架,最后描述了采用基于构件的设计模式,实现的以数据清
2、理为主要功能的数据加载(ETL)系统。目前该系统已经应用于某电信运营企业数据仓库项目中,效果显著。Abstract: Based on the research of the theories related to data quality problems, and for the requirements of high level data quality to telecom enterprises, a data quality control architecture oriented telecom applications is designed. A data cleanin
3、g framework with three tiers, such as notion defined tier, logic normalized tier and physical implemented tier, is discussed. An ETL system for the purpose of data cleaning is implemented by using design pattern based on component. The system is in used by a telecom enterprise, and worked well now.
4、1 引言当今企业已建设或正在建设数据仓库系统以辅助决策,提高其核心竞争力,这需要将长期积累的大量反映各种业务环境的数据,按照相应主题从同构或异构平台,通过一定的ETL方法和过程将它们进行抽取、过滤、清洗、转换,然后加载到中央数据仓库中进行整合,形成完整的企业业务视图。数据仓库是一个面向主题的、集成的、时变的、非易失的数据集合,支持管理部门的决策过程1。数据仓库也被看作是一种过程,即对企业中同 (异)种数据源中的数据进行整合、加工和分析的过程。ETL(Extraction, Transformation, Loading) 即数据抽取、转换和加载,是数据仓库实现过程中,将数据由数据源系统向数据仓
5、库加载的主要过程。现实世界中的数据源极易受空缺、不一致和噪声数据的侵扰。根据GIGO (garbage in ,garbage out)原理, 没有良好的数据质量作后盾,再先进的数据处理技术和分析工具也不能发挥作用,要想数据仓库真正发挥作用,就必须提高业务系统的数据质量。由此看来,数据质量的控制成为数据仓库建设发展过程中越来越引起重视的突出问题,而解决这些问题的过程称为数据清理。数据清理(data cleaning,data cleansing 或者 data scrubbing)在文献 2 中被定义为:发现和清除数据中的错误和不一致来提高数据的质量。在数据仓库环境下,数据清理是 ETL 过程
6、的一个重要部分,要考虑数据仓库的集成性与面向主题的需要。数据清理目的是检测数据中存在的错误和不一致,剔除或者改正它们,这样就提高了数据的质量2。业务系统数据清理是提升业务系统数据质量的有效手段,是数据仓库实施过程中数据质量管控的源头,是整个数据仓库项目成功的关键。业务系统数据清理工作一方面能有效提升业务系统的数据质量和系统可用性,另一方面也能有效降低整个数据仓库ETL 的复杂度和工作量,保证数据仓库中的数据质量。2 数据质量问题数据清理主要是针对源数据库,对其中出现二义性、重复、不完整、违反业务或逻辑规则等问题的数据进行相应的清洗操作,在清洗之前需要进行数据质量分析,以找出存在问题的数据,否则
7、数据清洗将无从谈起。21 数据质量定义名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 1 页,共 7 页 - - - - - - - - - 文献 3 中数据质量定义为:数据的一致性(consistency)、正确性 (correctness)、完整性(completeness)和最小性 (minimality) 在信息系统中得到满足的程度。文献4 认为:存在数据质量指示器和数据质量参数两类数据质量衡量指标,用户应根据应用的需求选择其中一部分,在此基础上提出了数据工程中数据质量的需求
8、分析和模型。依据文献, 结合电信运营企业的特点,对于数据质量,可以从以下四个方面来定义:完整性( Completeness) ,数据是否按规则填写完整;正确性( Correctness) ,数据是否满足域定义和业务逻辑要求;一致性( Consistency) ,不同系统之间关联的数据在定义、含义、取值及操作等方面是否一致;当前性( Currency) ,数据是否能够反应当前状态。以上四个方面,我们称之为4C。高质量的数据应该是完整的、正确的、一致的、当前的。22 数据质量问题的分类文献 2 根据处理的是单数据源还是多数据源以及问题出在模式层还是实例层,将数据质量问题分为4 类:单数据源模式层问
9、题、单数据源实例层问题、多数据源模式层问题和多数据源实例层问题。文献5根据用户角色的不同将数据仓库质量分为四类:设计与管理质量、软件实现质量、 数据使用质量以及数据质量。其中每一类又定义了包括正确性、完整性、可靠性等指标。电信数据仓库数据源具有多样性,在实际工作中, 以参与人为主题,对几个生产系统进行了信息探索, 对数据质量问题在正确性、完整性和一致性基础上做了进一步细分,根据业务专家的经验,采用了60 个规则对数据质量进行检查。这些规则的分布如下表所示:表 1 分类应用及错误实例大类细类规则出错实例完整性记录中的关键字段值缺失10 8 身份证字段为空或不全系统设计时缺少必要的字段8 8 无婚
10、姻状况字段正确性数据格式错误2 2 日期格式错误(20001210.00 )内容错误8 6 用户类型应为“城市用户”的系统数据被定义为“农村用户”;数据不符合业务逻辑15 8 出现安装时间为“2077-12- 10”一致性不同的业务系统之间信息不一致10 8 地域码在不同系统中定义不同,如长沙市定义为:“CSS ” 、 “CS ” 、 “1351”业务系统内部不同的表之间信息不一致7 7 某表按照num_id 与主用户表进行关联, 有部分 num_id 在公共用户表中不存在对本次信息探索中遇到的数据质量问题,对其中代表性问题归纳如下:(1) 在数据模型上,实体语义定义、属性定义、命名规则、编码
11、规则自成体系,难于与其他系统做匹配;(2) 系统间存在同一实体数据记录数不一致的现象;(3) 存在信息残缺现象,缺乏分析所用的部分数据;(4) 系统中存在非结构化数据;(5) 历史数据的准确性完全没有保证。由此可见数据质量的改进存在若干难点,比如:数据量大,数据格式不统一;数据质量标准不容易制定;数据清理的边界不容易定义;生产系统不断升级改造、人员岗位调整等因素容易造成前清后乱等等。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 2 页,共 7 页 - - - - - - - - -
12、 23 数据质量控制方法及实现从对数据仓库自身数据的监控到对数据形成过程的管理,数据仓库中用于数据质量控制的方法有很多, 但不论何种方法,面向数据仓库的长期建设,必须建立有效的数据质量评估体系。文献 6 提出:数据质量将逐渐与企业业绩和价值挂钩,企业应当开始采用方法来评估他们的数据质量能力和成熟度,就此提出了数据质量成熟度模型的评估理论。文献7 针对专门的数据质量模型进行计算的质量评估软件不能适应这种动态性的需求,将质量模型的描述作为元数据进行定义,在一个质量元模型下,可以定义多个质量模型。在此基础上提出了一个可扩展的数据质量控制元模型,该元模型是对企业数据质量模型的抽象,由三层组成:核心层、
13、初始层以及扩展层,目的是为企业的数据质量体系定义提供一个完整的框架。电信运营企业的业务需求是非常严格的,在领域专家的协助下,并采用了元模型定义的方法,设计了以下呈螺旋上升趋势的数据质量控制方法模型。如图1 所示,首先明确清理主题, 以及主题域定义的数据源及数据模型;接着对数据源进行抽样分析,对数据问题进行分类;第三步, 在业务专家协助下,提出并验证商务规则和清理尺度来确保数据质量;最后,通过对业务规则的巩固和进一步核实,确认数据质量需求。整个过程通过有限循环,最终产生了较完善的业务规则和数据质量分析报告。确定清理主题(如跨系统用户数据一致)与电信专家协商开发业务规则和标准验证业务规则巩固业务规
14、则进一步核实业务规则确认数据质量原系统数据抽样分析图 1 电信运营企业数据质量控制方法3 数据清理3. 1 数据清理原理存在不完整的、 含噪声的和不一致的数据是现实世界数据库或数据仓库的共同特点。数据清理原理就是利用有关技术如数理统计、数据挖掘或预定义的清理规则将脏数据转化为满足数据质量要求的数据8。数据清理的原理如图29所示。脏数据满足数据质量要求的数据业务知识清理算法清理规则手工清理自动清理数据清理图 2 数据清理原理3. 2 数据清理框架数据清理过程必须满足如下几个条件:不论是单数据源还是多数据源,都要检测并且除去数据中所有明显错误和不一致;尽可能地减小人工干预和用户的编程工作量,而且要
15、容易名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 3 页,共 7 页 - - - - - - - - - 扩展到其他数据源;应该和数据转化结合;要有相应的描述语言来指定数据转化和数据清理操作,所有这些操作应该在一个统一的框架下完成10。文献 11设计了数据ETL 工具的整体框架, 使用通用数据访问接口来屏蔽各种数据源之间的差异, 并以数据清理为主要目的,为消除多数据源的模式冲突和数据冲突提供了通用而有效的解决方案。文献12提出了一个数据清理框架,试图清晰地分离逻辑规范层和物理实现层
16、。 用户在逻辑层设计数据处理流程,确定清理过程需要执行的数据转化步骤;物理层实现这些数据转化操作,并对它们进行优化;同时文献12提出了一种描述性语言。该描述性语言可以在逻辑层上指定数据清理过程所需采取的数据转化操作,并指定何时可以抛出异常,要求用户的交互。该描述性语言还可以指定一些数据转化操作的参数,比如记录匹配操作所使用的距离函数等。文献13提出了一种交互式的数据清理框架,它由主要的四个部分构成: 数据源, 数据转换引擎,在线记录器以及自动差异监测器。用户利用系统提供的基本的数据转化操作, 无须书写复杂的程序就能够完成数据清洗任务,而且用户能够随时看到每一步转化操作后的结果,没有很长的延迟。
17、不论采用何种清理方法,数据清理过程一般由四个阶段构成:清理主题定义;数据(质量)分析、定义错误类型;针对分析结果,定义清理技术;实现程序,搜索识别、修正错误。 结合文献 12的思想和电信运营企业的具体环境,设计了一个三层的数据清理框架,分别为:概念定义层、逻辑规范层和物理实现层。如图3 所示。数据清理主题客户资料清理用户资料清理订单数据清理产品和服务清理套餐和协议清理帐单数据清理质量分析、定义核对有效客户数数据源间资料对比、核实补充缺失的客户关键字段统一客户属性编码客户归并与切割业务逻辑处理逻辑数据标准化缺值处理噪声处理数据备份 /恢复 /删除归并或切割聚类 /孤立点检测重复记录查找算法构件正
18、则表达式贝叶斯分类分箱方法线性回归动态 SQL动态规划邻近排序K 平均方法概念定义层逻辑规范层物理实现层SQL方法Z-score规范化判定树图 3 电信运营企业数据清理框架图图 3 数据清理框架包含以下四个方面的内容:(1)概念定义层。主要定义了数据清理的主题和数据质量需求。以电信为背景,根据数据仓库项目的需求,定义了:客户资料清理,用户资料清理,定单数据清理,产品和服务清理,套餐和协议数据清理,账单数据清理,话单数据清理,客户服务数据清理和结算数据清理等九大清理主题及其相应数据质量需求。(2)逻辑规范层。主要是将概念转换为业务逻辑,描述数据流,并且实现业务逻辑向处理逻辑的转换。 例如,客户资
19、料清理可以划分为:核对有效客户数,数据源间客户资料对比及核实,补充缺失的客户关键字段,进行客户属性编码的统一和客户归并与切割等五个步骤,根据每个步骤对质量的需求,将业务需求转换为相应的处理逻辑,例如, 客户归并与切割可映射到重复记录查找,数据备份/恢复 /删除,聚类 /孤立点检测等处理逻辑。(3)物理实现层。实现具体的清理程序以及算法,进行数据错误的修正和迁移,以及异常后人为干预是物理实现层的主要功能。(4)层的映射关系。文献14 给出了一种采用XML 描述网络映射的模式。在电信数据仓库应用中,采用了类似的描述形式,代码片段如图4:名师资料总结 - - -精品资料欢迎下载 - - - - -
20、- - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 4 页,共 7 页 - - - - - - - - - 图 4 层级映射代码片段图 4 相关结点的功能:节点 Subject 描述清理主题;节点Processes描述清理步骤; 节点LMethods 描述逻辑方法;节点CProcessList 描述清理算法构件列表;节点CProcess描述具体清理算法构件。3.3 数据清理例程的设计和实现3.3.1 基于构件的设计思想数据清理例程的设计采用了基于构件的模式。构件是可以被复用的软件实体,是系统中可以明确辨析的构成成分。在可复用构件的设计时,必须明确:
21、 构件的描述对构件的成功复用至关重要。一个好的描述是有效检索与理解的基础14。在当今面向网络的应用中,普遍采用了基于XML 的构件刻面分类描述模式。图 5给出了清理算法构件的刻面树结构和XML描述实例。图 5(a) 构件刻面树结构中,构件头信息(CHeader),描述构件创建的一些具历史信息开发、维护信息;构件标识(CID) ,用于惟一标识某一构件,描述算法、程序等文件;构件类别(CClass),用于标识该构件所属的领域功能,操作对象等;构件实现(CImplement) ,描述构件的功能及与实现有关的一些信息,如方法名和输入、输出参数。 图 5(b)给出了贝叶斯构件 XML 描述模型。名师资料
22、总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 5 页,共 7 页 - - - - - - - - - (a) 构件刻面树(b) 贝叶斯构件XML 描述图 5 算法构件刻面树结构和XML 描述实例3.3.2 数据清理系统的实现在数据仓库应用中,数据清理并不是一个单独的部分,需要和ETL 过程统一使用,在数据质量控制下,进行循环处理。 数据清理系统采用了基于构件的设计思路,实现了以数据清理为主的ETL 工具。主要功能及流程包括:通用数据访问接口,该接口能够跨平台(网络) 访问数据,支持在异构数
23、据源间建立连接,可选多种数据访问接口方式,如 JDBC、 0DBC、OLEDB 等;数据抽取,包括模式数据和实例数据抽取,此过程需要处理噪声数据,补充部分特殊空缺值,并建议使用增量的抽取方法;数据集成和变换,经过数据抽取后可以得到多个模式和多个实例数据集,在此过程中, 需要进行数据规范化和一致性校验;数据规约,经过数据集成后的数据集中还包含许多相似重复记录,此过程要完成重复数据查找,进行数据的归并或切割;数据装载, 此过程需要自动或异常后在人工干预下将清理后数据装载至目标数据模型,支持数据备份和恢复功能;元数据管理,元数据是描述数据的数据,系统使用元数据来描述数据质量对象及其属性7,描述数据清
24、理构件对象及属性和构件的检索方法等属性,此过程伴随系统运行的始终。4 结束语数据是数据仓库系统的血液,数据仓库能否为决策提供有效支持的关键就在数据质量,数据质量建设的成功与否直接决定着数据仓库的应用质量。数据清理就是为了解决数据质量问题,而采取的手动或人工智能的方法进行的清理操作。文章以某电信运营企业数据仓库项目为例, 探讨了数据质量问题的相关理论,设计了面向电信服务的质量控制体系,然后针对提出的数据质量问题,设计了数据清理框架三层模式,并采用软件构件的思想,实现了以数据清理为主的ETL 工具。参考文献1 W.H.Inmon. Building the Data Warehouse. New
25、York:John Wiley&Sons,1996. 2 Rahm, E., Do, H.H. Data cleaning: problems and current approaches. IEEE Data Engineering Bulletin, 2000,23(4):313. 3 Aebi, D., Perrochon, L. Towards improving data quality. In: Sarda, N.L., ed. Proceedings of the International Conference on Information Systems and Manage
26、ment of Data. Delhi, 1993. 273281. 4 Wang, R.Y., Kon, H.B., Madnick, S.E. Data quality requirements analysis and modeling. In: Proceedings of the 9th International Conference on Data Engineering. Vienna: IEEE Computer Society, 1993. 670677. 5 Jarke M., Jeusfeld M., Quix C. Architecture and Quality i
27、n Data Warehouse: An Extended Repository Approach. Information Systems. 1999, 24(3):229253. 6 方幼林 , 杨冬青 , 唐世渭等 . 数据仓库中数据质量控制研究. 计算机工程与应用,2003,13:14. 7 管尊友 , 冯建华 . 一个可扩展的数据质量元模型. 计算机工程 ,2005,31(8):7476, 226. 8 M Hernandez. A Generation of Band Joins and the Merge/Purge ProblemR. Technical Report CUCS
28、200521995, Department of Computer Science, Columbia University,1995. 9 LEE M L, LING T W, LOW W L. IntelliClean: A knowledge-based intelligent data cleanerC /Proceeding of the 6th ACM SIGKDD International Conference on Knowledge discovery and Data Mining. Boston: ACM Press,2000:290294 名师资料总结 - - -精品
29、资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 6 页,共 7 页 - - - - - - - - - 10 郭志懋 , 周傲英 . 数据质量和数据清洗研究综述. 软件学报 ,2002,13(11):20762082. 11.周宏广等 . 数据 ETL 工具通用框架设计J. 计算机应用 ,2003,23(12):9698.12 Galhardas, H., Florescu, D., Shasha, D., et al. Declarative data cleaning: language, model an
30、d algorithms. In: Apers, P., Atzeni, P., Ceri, S., et al, eds. Proceedings of the 27th International Conference on Very Large Data Bases. Roma: Morgan Kaufmann, 2001. 371380. 13 Raman, V., Hellerstein, J. Potter s wheel: an interactive data cleaning system. In: Apers, P., Atzeni, P., Ceri, S., et al, eds. Proceedings of the 27th International Conference on Very Large Data Bases. Roma: Morgan Kaufmann, 2001. 381390. 14 张晓明 ,乔溪 . 数据清洗方法与构件的综合技术研究. 石油化工高等学校学报,2005,1 8(2):6771. 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 7 页,共 7 页 - - - - - - - - -