当前位置: 首页 > 范文大全 > 公文范文 >

数据ETL研究与展望

时间:2022-03-31 08:09:34  浏览次数:

摘要:数据ETL(Data Extraction,Transformation and Loading)主要用来实现异构多数据源的数据集成,是数据仓库、数据挖掘以及商业智能等技术的基石,具有数据抽取、数据转换和数据装载功能。本文综述了ETL发展的背景、目前广泛研究的领域,论述了ETL在异构数据源集成和脏数据的检测与解决两方面面临的挑战,指出ETL将呈现出通用化、高效化、智能化三大发展趋势。

关键词:ETL;数据集成;ETL研究及挑战;ETL展望

中图分类号:TP311文献标识码:A文章编号:1009-3044(2007)06-11512-03

1 数据ETL研究的背景

知识经济时代的商业竞争日趋激烈,企业若想立于不败之地,高效的企业管理机制不可或缺,信息化成为提升企业竞争力的必要手段。如何有效地管理企业在经营运作过程中所产生和收集的大量数据与信息,一直是信息管理人员所面临的一个重要问题[1]。数据库作为企业信息的存储枢纽,不仅为企业的日常业务提供各种各样的数据服务,而且也是企业经营决策的基础。数据库管理系统在实现这两种功能上存在巨大的差别,因此衍生出以事务型处理(OLTP)为主、以决策支持(DSS)及联机分析处理(OLAP)为主的两种不同数据库系统。20世纪70年代开始出现的关系数据库(传统数据库)在联机事务处理中获得了较大的成功,但无法承担将日常业务处理中所收集到的各种数据转变为具有商业价值信息。其原因是传统数据库的处理方式和DSS中数据需求不相称[2],主要体现在:

系统响应问题:在传统数据库中,用户对数据的操作时间短暂,能保证较高的系统响应时间,但决策分析问题的解决则需要遍历数据库中大部分的数据,消耗大量的系统资源,这是OLTP系统无法承担的。

数据需求问题:DSS需要全面、正确的集成数据,这包括内部各部门的有关数据和企业外部的、甚至竞争对手的相关数据,但是在传统数据库中只存储了本部门的事务处理数据,没有与决策问题有关的集成数据,若每次用户决策分析都需要进行一次数据的集成,将极大地降低系统运行的效率。

数据操作问题:传统数据库中的用户只能使用系统所提供的有限参数进行数据操作,访问受到很大的限制。而决策分析人员希望以专业用户的身份,用各种工具对数据进行多种形式的操作,结果以商业智能(BI)的方式表达出来。

因此,决策分析需要一个能够不受传统事务处理约束,高效率处理决策分析数据的支持环境,数据仓库正是满足这一要求的数据存储和数据组织技术。数据仓库不是数据的简单堆积 ,而是从大量的事务型数据库中抽取数据,并将其清理、转换为新的存储格式。利用完整的信息及时做出正确的决策,这就是数据仓库所要完成的根本任务。

建设数据仓库需要集成来自多种业务数据源中的数据 ,这些数据源可能是在不同的硬件平台上 ,使用不同的操作系统 ,因而数据以不同的格式存在不同的数据库中。如何向数据仓库中加载这些数量大、种类多的数据 ,已成为建立数据仓库所面临的一个关键问题[3]。如果其中的信息不准确 ,那么这个数据仓库便形同虚设 。因此,向数据仓库中导入操作数据时,必须进行精心规划,选择合适的数据源,创建标准的字段名集,确定并使用与开发数据仓库相一致的数据显示标准。当完成这些工作后,便可以根据设计方案建立一个系统来转换数据,这个系统一般称作数据ETL工具。在创建数据仓库时 ,需要使用它将所需数据从其他数据库中(例如不同版本的SQL Server、Oracle数据库等)选择、加工、装载到数据仓库中去。

数据ETL(Data Extraction, Transformation and Loading)正是用来实现这种异构多数据源的数据集成,其概念模型如图1所示。ETL 软件(工具)的功能包括:

(1)数据的抽取:从不同的网络、不同的操作平台、不同的数据库及数据格式、不同的应用中抽取数据;

(2)数据的转换:数据转化(数据的合并、汇总、过滤、转换等)、数据的重新格式化和计算、关键数据的重新构建和数据总结、数据定位;

(3)数据的加载:跨网络、操作平台,将数据加载到目标数据库中。

图1 数据ETL概念模型

数据ETL研究的热化与数据仓库和数据挖掘(DW)应用的不断升温息息相关。当数据仓库/商业智能逐渐浮出水面,从概念走到实施阶段(世界500 强企业中99%使用了DW进行DSS),国内外数据仓库项目的实施软件厂商,如Sybase, Oracle, Microsoft, SAS, Brio, BO, Cogonos等纷纷加入竞争行列,数据ETL作为数据整合工具,因其在数据仓库项目中的重要地位,已经成为厂商占领市场的战略要地[4]。

2 数据ETL研究

2.1主要研究领域

数据ETL主要在数据仓库(Data Warehousing)、数据库中的知识发现(KDD) 和总体数据质量管理(TDQM)这三个领域应用。理论界通常称其为数据清洗,工程界则青睐于数据集成的叫法。

数据ETL是构建数据仓库的第一步,难点在于多源数据清洗、沉淀。对海量数据而言,人工处理不现实,故自动化数据清洗受到工业界的广泛关注。为了保证数据质量,需要定义和判断错误类型;查找并标示错误实例;修改没有发现的错误。由于这些问题比较凌乱而显得难以采用通用的方法进行处理,大多数研究工作都针对特定领域的数据集,或者是对不同性质的异常数据进行的通用处理。

国内关于数据清洗领域的研究多以理论为主,很少涉及产品。国外的相关研究则开始较早,且非常活跃,研究领域涉及以下几个方面[5]:

(1)研究高效的数据异常检测算法以避免扫描整个庞大的数据集;

(2)在自动化异常检测和清洗处理间增加人工判断处理以提高处理精度;

(3)数据清洗时对海量数据集进行并行处理;

(4)如何消除合并后数据集中的重复数据;

(5)建立一个通用的领域无关的数据清洗框架;

(6)关于模式集成问题。

已有研究为数据ETL积累了丰富的脏数据处理经验,提出了诸多数据清洗算法:脏数据预处理、排序邻居方法、优先排队算法、多次遍历数据清理方法、增量数据清理、采用领域知识进行清理、采用数据库管理系统的集成数据清理算法等。这些算法大多可运应到数据ETL的数据清洗过程中,极大地简化了数据ETL软件的实现,提升了最终软件的服务质量。

另一方面,数据仓库的发展则不断给数据ETL研究提供新课题。过去由于数据清洗与问题域的相关性很强,通用的数据清洗可能受到很大的限制,因此数据清洗方面的研究大都是针对具体应用、具体领域开展的,数据清洗框架的通用性很少有人关注。然而,数据仓库不断拓宽数据ETL应用领域,通用的清理方案必将受到越来越多的重视。在将多源数据导入数据仓库的过程中,数据ETL需要处理的是海量数据集,因此,增量式的数据抽取,清洗时增量式的数据异常检测、数据转换算法是必需的,而且对于算法的效率提出了愈来愈高的要求。

2.2数据ETL面临的挑战

将数据从各种业务处理系统导入数据仓库是一个复杂的系统工程,数据ETL在此面临两个主要的挑战,其一为异构数据源的集成问题,其二为脏数据的检测与解决。虽然数据ETL作为数据仓库的预处理部分已经进入实用阶段,但这两个问题至今并没有得到很好的解决,成为业界研究的持续热点。

(1)异构数据源集成问题:即数据集成,主要处理多数据源的异构问题。待集成数据源的异构性分为四个层次 :系统、语法、结构和语义[6]。系统级异构指不同的主机、操作系统和网络;语法级异构是指数据类型、格式的差异;结构级异构是指数据结构、接口和模式上的不同;语义级异构则是指在一定领域内专用的词汇意义的共享和交流。语义是信息的内在涵义,其意义与相关上下文环境有关。语义的映射是底层信息和数据转换的基础与依据,基于语义集成数据可以提高数据转换的可能性和准确性。由于待处理的数据是海量的,要完成系统之间映射,实现集成后的语义一致往往非常困难。

(2)脏数据的检测与解决:即“数据清洗”,用来有效的清除脏数据、保证数据质量。对于创建数据仓库及其后续工作,如数据挖掘等,需要保证数据的正确性(Correctness)、一致性(Consistency)、完整性(Completeness) 和可靠性(Reliability)[7],而目前的现存管理系统中的数据存在很多问题,容易造成脏数据,其原因有:滥用缩写词、惯用语、数据输入错误、数据中的内嵌控制信息、重复记录、丢失值、拼写变化、不同的计量单位和过时的编码等[8]。脏数据可能带来如操作费用昂贵、决策制定失败甚至错误、组织间的不信任、分散管理的注意力等问题,因此针对脏数据的有效处理是进行辅助决策的必要步骤。数据清洗研究中的丢失值填充与相似重复记录处理,需要借助一定的领域知识,是实例层次上基于语义的数据集成,具有挑战性,是当前数据清洗领域研究最活跃的分支。

事实上,数据ETL需要解决的这两个问题并不存在十分清晰的划分边界,一般认为“数据集成”是“目的” ,而“数据清洗”则是实现集成的主要手段,它们往往交织在一起,相互渗透,例如,为了实现企业应用集成(EAI)中跨应用共享数据,必须将多个数据源中的数据相融合(集成),其核心步骤是对数据源进行清洗,以实现集成后的语义一致。因此离开集成谈清洗没有意义,而没有清洗的集成则是“生产垃圾”。

3 数据ETL展望

数据ETL是数据仓库、数据挖掘以及商业智能等技术的基石,为企业决策与预测提供了基本的素材,因而存在着广阔的发展空间。由于现实需求的强劲推动,数据ETL逐渐成为当前信息技术最为活跃的研究领域之一[9],呈现出通用化、高效化、智能化三大发展趋势。

数据是企业进行任何事务的前提,ETL的目的正是提供综合且高品质的数据,因此它必然成为企业各类应用的基础,为众多的高层信息系统提供服务。具备良好的通用性是未来数据ETL软件占领市场的必要条件,这就要求它:支持尽可能多的数据库管理系统(DBMS)、文件系统和数据采集、处理系统;能够跨网络、跨平台使用;具备良好的可扩展性,对于新的应用能够以较小的代价,通过预定的应用程序接口(API)或标准化语言接口编程实现互联。相关技术的发展,如元数据的标准化、程序逻辑与数据的统一化,为ETL提高通用性提供了动力。

数据ETL针对的是海量数据,效率极为重要,未来的ETL工具将是高效化的数据集成工具。它必须具备高度的可伸缩性,不但能运行在昂贵的主机系统上,还能应用到工作站或PC机上。业界也将提供更加出色、高效的抽取、加载和清洗算法,增量的ETL算法将成为主流,真正避免重复集成;为了提高计算性价比,并行算法将领导潮流,集群计算、网格运算将为ETL提供廉价高效的计算资源。

未来的ETL将具备高度的智能,专家系统、机器学习、神经网络、人工智能(AI)技术等领域的成果将在此处得到广泛应用。数据源管理、ETL规则定制、数据质量保证等工作都将由机器智能来完成。因此,当前必须手工或半手工的许多单调而繁重数据集成任务将不复存在,ETL工具的使用也会不断简化,普通用户能够运用智能工具轻松而高效的完成数据的集成与清洗工作。

4 结束语

数据ETL工具是数据仓库获取高质量数据的核心部分,帮助企业根据决策需求将各种异构信息集中到数据仓库中,解决企业各种应用数据零散分布、品质低下的现状。数据ETL最大的挑战来自待集成多数据源的异构性,为此实施数据ETL过程通常被划分为模式集成与数据集成两个阶段,这样有利于将数据转化的逻辑规范和物理实现清晰分开,方便管理,降低系统实现的难度。

通用访问接口是解决系统级异构最成熟的方法。JDBC是SUN公司提供的更好的解决方案,可很好的解决ETL面临的系统级异构问题。元数据用来解决语法级异构,ETL利用数据转换组件来定制转换规则,以调和不同元数据的差异,从而解决语法级异构问题。结构级异构通过模式集成来解决,首先针对不同的数据源,用统一的形式化方法将它们包装成输出模式,然后利用映射机构将输出模式改写为映射模式,接着由模式转换得到各个成员模式,最后针对各成员模式来解决各种模式冲突,得到统一的集成模式。语义级异构解决难度最大,业界中至今还没有较好的通用解决办法,研究的重点是缺损数据处理和相似对象识别两个问题,这将是我们今后研究的重点。

参考文献:

[1]W H Inmon,John A Zachman.Data Stores,Data Warehousing and the Zachman Framework[M].Prentic Hall,1998.

[2]W H Inmon.著.王志海,黄厚款,田盛丰.等.译.数据仓库[M].北京:机械工业出版社,2000.

[3]朱焱.浅论数据抽取,净化和转换工具[J].计算机应用,2000,20(4):1-3.

[4]张宁,贾自艳.等.数据仓库中ETL技术的研究[M].计算机工程与应用,2002,38(24).213-216.

[5]E.Rahm,Hong Hai Do. Data Cleaning:Problems and current approachs.IEEE Bulletin of the ACM,Vol.41,No.2,1998,79-82.

[6]Sheth A.P. , Changing Focus on Interoperability in Information Systems:From System,Syntax,Structure to Semantics[C]. Interoperating Geographic Information Systems,Kluwer,Academic Publishers,1998,5-30.

[7]Agosta L..the Essentia1 Guide to Data warehouser[M].Prent5ce Hall,1nc.,2000:2-47.

[8]Hey F. Korth, Abraham Siberschatz. Database Research Faces the Information Explosion[J].Common ACM 40,1997(2):139-142.

[9]张宁,贾自艳.等.数据仓库中ETL技术的研究[M].计算机工程与应用,2002,38(24):213-216.

本文中所涉及到的图表、注解、公式等内容请以PDF格式阅读原文。

推荐访问: 展望 数据 研究 ETL