面向多数据源的数据清洗关键技术的研究

2023-01-26

对于各个领域的信息资源管理而言, 数据质量一直是一个非常关键的问题。随着信息技术的快速发展和普及, 各行各业都越来越依赖于各种各样的信息系统。对于企业而言, 企业的管理和运作依赖于各种信息系统。以企业决策为例, 正所谓“Garbage In, Garbage Out”, 可以想象, 如果作为决策支持依据的数据仓库中所存放的基础数据的质量达不到要求, 那么数据挖掘这类技术产生的结果也不会理想。对于政府而言, 许多日常政务都将通过各种信息系统来实行, 因此信息的质量将极大的影响政府工作的质量和效率。数据是各种信息系统提供信息服务的基石, 如果数据质量不符合要求, 那么很难指望信息服务的质量能够满足人们的要求。数据清洗的最终目的是为了提高数据质量, 使之符合要求, 从而提高基于这些数据的信息服务的质量和效率。在分析研究了数据质量和数据清洗的研究现状后, 该文重点研究了面向多数据源的数据清洗框架。

1 数据质量问题

数据质量问题, 是创建数据仓库以及进行数据集成工作中的致命性问题。如果没有很深刻的分析数据中存在的问题, 就盲目进行开发、集成, 造成的后果不仅是数据仓库创建失败的经济损失, 更有可能造成严重的决策失误。

在多数据源的集成过程中, 每个数据源往往由特定的应用程序创建、配置和维护, 以满足特定的服务需求。因此和这些数据源相关的数据管理系统、采用的数据模型、数据模式的设计和实际数据等各个方面都存在很大程度的异构性。此外, 每个数据源中都可能包含脏数据, 不同数据源对同一数据可能存在不同的表示形式、数据重复或者数据冲突。因此相同的数据质量问题在多数据源集成之后会比在单数据源的情形下表现的更为复杂和严重。除此之外, 在多数据源情形下, 数据清洗将面临许多新的问题, 比如结构冲突、命名冲突、重复记录等。

1.1 数据清洗技术的现状

针对数据质量的现状, 很多学者提出了数据清洗的框架。但是数据清洗是一个领域相关性非常强的工作, 而且数据质量问题非常零散, 复杂, 不一致, 到目前为止没有形成通用的国际标准, 只能根据不同的领域制定不同的清洗算法。目前的清洗算法的优良性衡量标准有以下几个方面:返回率 (Recall) :重复数据被正确识别的百分率;False-positive Error:错误地作为重复数据的记录的百分比;精确度 (Precision) 算法识别的重复记录中的正确的重复记录的百分比;计算公式:Precision=100%-False-Positive Error。

数据清洗主要分为检测和清洗两个步骤。国内外的相关研究主要有以下几个方面: (1) 提出高效的数据异常检测算法, 来避免扫描整个庞大的数据集; (2) 在自动检测数据异常和进行清洗处理的步骤间增加人工判断处理, 来防止对正确数据的错误处理; (3) 数据清洗时对数据集文件的处理; (4) 如何消除合并后数据集中的重复数据; (5) 建立一个通用的领域无关的数据清洗框架; (6) 关于模式集成的问题。

解决数据异常检测的方法主要有:基于契比雪夫定理的统计学方法, 这种方法可以随机的选取样本数据进行分析, 加快了检测速度但是这是以牺牲准确性作为代价;模式识别法, 基于数据挖掘和机器学习算法来查找异常数据, 用到关联规则算法;基于距离的聚类方法, 重点在于它的类的评测标准为欧几里德距离或Edit距离, 以此发现数据集中的重复记录;增量式的方法:如果数据源允许, 可以随机的方法获取元组, 输入一个随机的元组流。

2 几种数据清洗工具的比较及其存在的问题

目前, 有多种数据清洗的商业工具用来支持数据检测和数据清洗转换, 尤其是针对数据仓库方向的。同样, 它们主要有两种形式:检测异常数据的工具;数据转换工具 (针对异常数据的清洗) 。其中数据分析工具可以分为提取轮廓和数据挖掘两种。

MIGRATIONARCHITECT Cevoke software是一种数据轮廓分析工具, 对于每个属性, 产生下列实际的元数据:数据类型、长度、离散的值以及它们的比例、最小值最大值、以及唯一性。同时它也为数据转换提供目标图表。数据挖掘工具, 比如WIZRULE可以展现三种规则:算法模式、if-then规则、基于拼写规则标志的错误姓名。INTEGRITY (vality) 使用某些模式和规则来定义和完成数据清洗转换。它进行一些语法分析、数据类型模式和出现频率分析。其中还有一些语言规则, 包括一些列操作 (比如:移动、拆分、删除) 和行操作 (比如合并、拆分) 还有一些特殊的清洗工具和ETL工具。比如较为成功SAS, 它基于DBMS来建立一个存储区, 用统一的方式管理元数据。这些元数据关系着源数据、目标表、映射、描述语言等等。

这些数据清洗工具普遍存在的问题是随着数据源特性和实际数据的不同, 各种元数据也可能完全不同, 因此对数据清洗过程的具体要求会不一样。因此数据清洗工具应该具有足够的灵活性, 从而对特定的数据质量问题能够处理各种不同的数据源。

3 数据清洗的发展趋势

数据清洗是一个非常复杂的任务, 并且包含着一些互相关联的问题。一方面转换必须尽可能的通用性, 而且不依赖大量的编程工作, 也就是支持在多领域内的多种错误检测算法;另一方面, 系统需要支持一种简单的接口定义来进行错误检测和数据转换。

因此, 需要在现有的算法和功能基础上, 设计相应的数据清洗系统, 使他具有相对的通用性、和可交互性。通用性主要的实现技术有数据的标准化、术语话, 通用的接口标准, 即通用的过程描述语言, 通用的数据结构以支持用户进行扩展。可交互性支持用户通过系统反馈的检测统计图表, 实时的修改转换过程, 避免用户与系统的隔离。同时, 国外的数据清洗工具价格较高, 这为我们国内的企业创建数据决策支持系统带来很大的困难。因此, 当前我们研究的重点是如何实现面向多数据源的数据清洗框架, 并将其应用于通用的数据集成平台中。

4 面向多数据源的数据清洗系统概要

经过对数据质量的分析, 数据清洗技术的现状和常用的工具的分析后, 我们提出了一种面向多数据源的数据清洗系统。在此做简要的概述, 将在另外的文章里做详细的系统构造, 系统算法, 系统语言介绍。

4.1 系统设计思想

首先, 将非标准数据统一化成结构数据;根据数据字典消除不一致的数据 (比如缩写) , 将元素标准化;对标准化的元素进行一致性校验, 将内容上的一些错误进行修改;在其它记录中寻找相似重复记录, 也就是进行匹配 (matching) ;根据匹配的结果进行处理, 删除部分记录或者多个记录合并为一个更完整信息的记录;同时将这些步骤中的处理过程和结果写入元数据存储中心, 以便进行后续清洗过程, 避免重复清洗;也便于用户理解数据库, 以及更好的进行切片、切块等操作。其中增添辅助的知识库功能, 主要用于下列方面:辅助进行数据类型检查、数据格式规范化、不一致的缩写等处理过程;将预处理后的数据通过知识库引擎和一系列的规则进行处理;以及处理一些规则处理无法完成的重复记录。

在这些处理过程中需要大量的元数据, 象实例层数据转换定义、匹配、工作流定义等, 这些元数据被保存于基于DBMS的存储库中, 以记录源数据的更新过程, 相应的源数据、目标数据记录等。

4.2 系统初步设计图

由图1可知, 系统能够满足不同应用和用户的需要, 处理的数据可以是文本数据, 包括数据文件和描述数据文件格式的格式描述文件;也可以是数据库中的数据。

该系统根据用户提供的资源的名称来定义和执行相应的功能, 这些名称称为术语, 通过术语来命名资源和功能的方法称为术语模型。这是该系统的基础。该系统处理和产生的数据都是结构化的。它包含存放数据的数据文件和描述数据存放格式的格式描述文件两部分。而数据文件中存放着一系列记录, 每条记录占一行, 每条记录包含多个数据, 这些数据由列分隔符分隔;格式文件就存储这些分隔符, 以及每列对应的术语。

4.3 系统功能

系统的功能包括数据分析、数据标准化、数据增强、记录匹配/合并、规则和字典管理器。各个功能模块通过通用的过程描述语言来接口, 而且数据具有相同的数据结构。同时该系统可以用相应的语言来定义五种逻辑操作。包括映射操作、视图操作、匹配操作、聚类操作、溶合操作。具体详细的定义、算法我们将在另外的文章里做更为详细的介绍。

数据分析, 根据用户定义的模式对异构的数据进行分析, 使之具有良好的通用的结构。

数据标准化, 通过用户定义的规则或者字典将原始数据中的特定属性的数据转变为统一的标准形式, 使得数据规范化。

记录和匹配, 合并两个数据集中的记录, 或者检测并合并同一个数据集中的重复记录。解决这类问题需要的技术有:记录匹配算法、重复检测算法、合并过程中的冲突解决算法。

数据增强, 补充原始数据中不完整及遗漏的字段。数据增强通常有三种方式: (1) 对数据中不完整的字段, 补充必要的信息, 使之完整。例如, 给电话号码加上区号; (2) 为空值字段设置合适的值 (3) 增加字段的方式添加额外的信息。

用规则字典管理器模块来管理外部字典、用户定义规则和模式的定义。

4.4 系统模型

在这个系统中, 我们将两种行为分开来, 分为物理层和逻辑层。其中逻辑层用sql扩展支持的语句来定义数据转换的模式, 物理层选择最佳的算法来完成转换。系统的基本思想是通过与用户之间的交互, 来定义相应的转换规则和任务描述, 以尽可能少的依赖特定的应用。通过术语模型来实现对字典、规则等资源的描述和管理;通过过程描述语言 (PDF) 实现模块之间的良好的交互性, 用户可以通过定义新的转换功能来完善和改进转换系统。

逻辑层中, 首先为每条输入记录增加关键字;然后从每条记录中提取不同的数据流中;用辅助字典来保存从每个记录中提取出来的相关的内容, 在每个数据流中消除冗余信息。将去处冗余信息的数据流集成起来。在这一层中, 主要是定义数据转换流图, 其中数据清洗操作具有以下几种类型:映射、视图、匹配、聚类和溶合。其中输入输出的数据流是以关系数据库为逻辑模式的, 逻辑层操作的设计用SQL语句来初步设计定义。

物理层, 选择一些最优算法来完成数据清洗程序的执行速度。该系统将多个最优的算法联系在一起, 并且使得用户在给出的匹配操作的逻辑定义中根据一些参数来进行最优化定义。例如, 我们用到的一些算法有:nested loop (NL) ;multi-pass neighborhood method (MPN) 以及neighborhood join (NJ) 。通过一个衡量标准:recall (返回率:重复数据被正确识别的百分率) , 来比较几种算法的优良性。系统能够接受并处理这些信息, 来选择算法来完成相应的匹配。其中用户可以控制最优化算法的使用, 用户来决定在逻辑层中匹配的标准, 然后提供必要的信息来完成最优化的执行。

目前, 该系统解决的问题有以下几点: (1) 将逻辑层的转换定义与物理层的转换实现分开来。 (2) 清洗结果的分析与反馈。 (3) 用可交互的功能来改进数据清洗程序。 (4) 实现面向多数据源的数据清洗功能。

5 结语和展望

数据清洗在很多领域, 包括数据仓库、数据集成都是非常重要的任务。如果没有很好的分析数据中存在的质量问题, 并且很好的设计集成的数据框架与图表, 而是盲目的将海量的数据集成, 以供分析决策, 势必造成严重的后果。因此, 提出一种面向多数据源的数据清洗框架是非常及时的。它将数据分析和设计清洗转换图与选择算法进行数据转换独立开来, 同时允许用户经常通过错误的检测的反馈来定义新的转换。因此, 它具有较强的面向多数据源的特性。总之, 良好的数据清洗是构建数据仓库和进行数据集成的关键前提, 越来越多的学者致力于此, 并且将重点放在了数据清洗框架的研究上。将来, 商业的通用的数据清洗平台将为数据集成提供越来越方便的使用。

摘要:对于各个领域的信息资源管理而言, 数据质量一直是一个非常关键的问题。现实世界中的数据往往存在着各种各样的问题, 从简单的拼写错误到复杂的语义不一致错误。数据清洗的目标就是检测并去除数据中存在的各种错误和不一致, 提高数据的质量。该文归纳、总结了数据清洗相关研究的现状, 提出一个面向多数据源的数据清洗框架的定义。框架实现了术语模型、处理描述文件和共享库等概念和技术。

关键词:数据质量,数据清洗,面向多数据源的数据清洗框架

参考文献

[1] H.Galhardas, D.Florescu, D.Shasha, and E.Simon.AJAX:An Extensible Data Cleaning Tool[J].In SIGMOD (demonstration paper) , 2000.

[2] H.Galhardas, D.Florescu, D.Shasha, E.Simon, and CA.Saita.Declarative Data Cleaning:Language, Model, and Algorithms.Extended version of the VLDB[J].01paper, 2001.

[3] V.Raman and J.M.Hellerstein.Potter's wheel:An Interactive Data Cleaning System[J].In Proc.Of VLDB, Rome, 2001.

[4] L.V.S.Lakshmanan, F.Sadri, and I.N.Subramanian.Schem-ma SQL-A Language for Interoperability in Rela-tional Multi-database Systems[J].In Proc.Of VLDB, Mumbai, 1999.

[5] M.L.Lee, T.W.Ling, W.L.Low.A Knowledge-Based Framework for In-telligent Data Cleaning.Information Systems[J].Journal-Special Issue on Data Extractiong and cleaning, 2001.

[6] Object Management Group (OMG) .CWM Meta Store Creation Script.Zip[S].http://www.wiley.com/legacy/c o m p b o o k s/p o o l e/C W M G u i d e/software.htmo, 2002-10-25.

[7] E.Rahm, H.H.Do.Data cleaning:Problems and current approaches[J].IEEE Data Engineering Bulletin, 2000, 23 (4) :3~13.

[8] Xi nwen Z hang, Sehong Oh, Ravi Sandhu.PBDM:A flexible delegation model in RBAC[J].The8th ACM Symp on Aess Control Models and Technologis. (SACMAT2003) , Villa Gallia, Como, Italy, 2003.

[9] Object Management Group (OMG) .Com-mon Warehouse Metamodel (CWM) [S].ht tp://www.omg.or g/cgi-bin/doc?Ad/2001, 02, 01.

[10] H.H.Do, E.Rahm.On Mtada Interoperability in Data Warehouses[J].Tech.Report1-2000, Department of Comouter Science, University of Leipzig.http://dol.uni-leipzig.de/pub/2000, 13.

上一篇:国有企业绩效考核常见问题分析与对策下一篇:刍议构建初中语文高效课堂的策略