基于数据仓库的一种通用ETL工具的设计与实现

时间:2022-09-09 08:12:58

【前言】基于数据仓库的一种通用ETL工具的设计与实现由文秘帮小编整理而成,但愿对你的学习工作带来帮助。(Changchun University of Technology, Changchun 130000, China) Abstract: Base on Data Warehouse this paper studies ETL, and brings forward a universal solution to the process of ETL. It provides a complete framework for enterprises. Key words: ETL; ...

基于数据仓库的一种通用ETL工具的设计与实现

摘要:通过对基于数据仓库的ETL过程进行的研究,提出了一种通用etl过程的解决方案,为企业管理者的决策过程提供了有力支持,同时给出了一套完整的系统体系架构。

关键词:ETL;元数据;管道―过滤器;数据仓库

中图分类号:TP311文献标识码:A 文章编号:1009-3044(2008)26-1625-02

Design and Realization of Universal ETL Based on Data Warehouse

WANG Qiu-nan, ZHOU Lian-zhe

(Changchun University of Technology, Changchun 130000, China)

Abstract: Base on Data Warehouse this paper studies ETL, and brings forward a universal solution to the process of ETL. It provides a complete framework for enterprises.

Key words: ETL; metadata; pipeline; data warehouse

1 引言

数据仓库是近些年来在信息领域迅速发展起来的数据库新技术,主要是为企业管理者决策过程提供支持,它是基于主题的、集成的、时间相关的、非易失数据的集合[1]。数据仓库的概念很简单:使用所有现存数据,通过清洗和转换,从而提供有用的决策信息[2]。ETL是构建数据仓库的重要过程,是数据整理阶段的一个主要工具,它提供了数据仓库信息内容的前期工作。通常情况下,ETL过程要占整个数据仓库构建工作总量的60%~80%[3],从而可以看出ETL是构建数据仓库的基础与前提。本文主要对数据仓库中ETL过程进行了研究,同时提出一种通用ETL工具的解决方案。

2 相关理论与技术

2.1 ETL的含义

ETL(Extract Transform Load,简称ETL)是将数据从源操作型系统抽取、转换并加载到数据仓库的过程。ETL过程就是数据流动的过程,从不同的数据源流向不同的目标数据库。在这个过程中,数据的抽取、清洗、转换和装载形成串行或并行的过程。

2.2 ETL工具的主要分类

ETL工具主要分为三类:数据转换引擎、通过复制捕获数据以及代码生成器。以数据转换引擎为核心的ETL工具灵活性强,提供最合适的数据转换方法来实施完全更新和增量装载,其功能涵盖了整个ETL过程;通过复制捕获数据的一类工具中大部分使用由数据库管理系统维护的交易日志,在交易日志中捕获的源系统的变化可以近乎实时地在数据转换区域被复制,等待进一步的处理;代码生成器会创建3GL/4GL的数据抽取和转换程序,这类工具直接处理数据的抽取、转换和装载。

2.3 元数据

元数据(Metadata)是关于数据的数据,是以概念、主题或集团等形式建立的信息结构,并且记录数据对象的位置。在数据仓库系统中,元数据是指关于数据仓库的数据,指在数据仓库建设过程中所产生的有关数据源定义、目标定义,转换规则等相关的关键数据,同时元数据还包含关于数据含义的商业信息。元数据在数据仓库中处于一个非常重要的地位,是整个数据仓库运行和维护的中心,它对数据仓库的设计、开发、维护和管理,对数据的组织信息查询以及结果的理解都有重大作用[4]。

3 通用ETL过程的研究

3.1 ETL的需求和步骤

数据仓库中ETL的构建过程是最具挑战性、最耗时耗力的,其过程的主要步骤可以分成以下几个方面:首先决定数据仓库中需要的所有的目标数据,同时确定所有的数据源(包括内部和外部);其次,准备从源到目标数据元素的数据映像关系,从而建立全面的数据抽取规则;再次,确定数据转换和清洗规则,并为聚集表制订计划,组织数据缓存区域和检测工具;然后,为所有的数据装载编写规则;最后,建立纬度表的ETL和事实表的ETL。

3.2 ETL过程主要技术难点和解决方案

ETL的整体架构如图1所示。

1)平台的无关性:平台无关性是评价ETL工具的一个重要指标,JAVA语言“一处编写,处处运行”的优势是解决系统平台无关性的一个较好的解决方案;

2)可扩展性:系统的可扩展性对于软件来说至关重要,应用面向对象的分析和设计,充分运用面向对象方法中的继承、封装和多态等特性进行系统的设计和开发;

3)异构数据源访问:JDBC(Java Database Connection,Java数据库连接)作为Java平台的一个标准组成部分,是根据“与平台无关”的基本原则而设计的,对独立于数据库的跨平台数据库访问提供了有力的技术支持[5]。

4 系统体系结构

本系统呈现的是一个通用ETL过程,它与通常意义下的C/S结构类似,但只是对操作型数据库中的数据进行迁移。ETL系统体系结构如图2所示,ETL工具把源数据和目标数据分隔开,通过数据抽取控制对源数据进行抽取并存储在元数据管理模块中。用户在规则定义界面中定义抽取规则、转换规则、通过简单的拖放操作建立从源到目标的字段映射等,再将这些规则(元数据)存储在元数据管理模块中。用户在执行任务时,系统从元数据管理模块中取得ETL任务的抽取、转换、加载规则,与数据库交互完成数据迁移的任务。

5 具体实现

系统采用管道―过滤器模型实现ETL过程中的转换引擎模块部分。管道―过滤器模型(pipeline)是由代表过滤器的数据加工处理模块和代表数据传输的管道模块组成。过滤器是具有一组输入(或输出)和内部数据处理的部件构成,它们被传输数据的管道连接在一起。过滤器通过输入端口从管道接受数据,并将处理的数据通过端口输出到管道进行传送。对于pipeline的实现主要包括3个重要的类:图(TranformationGraph类)、过滤器(Node类)和管道(Edge类)。

TranformationGraph类首先经由加载的过滤器和管道中的信息分别存储在nodes和phase中在初始化方法init()中,同时使用TranformationGraph的distributeNode方法将过滤器和管道具体的分配到不同的与过滤器和管道相适应的并行线程(phase)中,在phase中过滤器和管道的初始化将由init()方法完成。在TranformationGraph中将释放对管道和过滤器的相应的引用。Node类是所有过滤器节点的超类,如果要创建一个过滤器就必须继承Node类,继承字Node类的过滤器节点都遵守整个软件的规范,所以可以自由的添加到任务流程中。各个过滤器有自己独特的功能又扩展相同的接口,加强了过滤器的独立性,使软件模块可以重用。在运行时每一个过滤器都作为一个线程运行。Edge类在管道―过滤器模型中是连接不同的过滤器的数据流通桥梁,不参与整个模型中数据的处理与变换,只起到数据传输的作用,是具有高度内聚性的组件。

系统采用XML来进行数据的传输。数据的独立性把内容及其表示法分离开来是XML的特征,从而使XML成为数据交换的理想选择。XML即可作为ETL工具抽取数据的来源又可以是加载数据的目的地,应用dtd可以方便的对生成的转换规则进行内容验证,而dom可以实现xml的解析。

6 性能分析

性能测试是改善系统性能的有效手段,本系统的性能测试主要以并发性测试为主,对目标数据库实现ETL过程时单表随着增量数据量的不断增大,数据抽取、转换和加载过程所消耗的时间的变化进行追踪。

硬件环境:CPU为主频2.0G的奔腾4,1G的DDR内存。

软件环境:操作系统为Windows 2003、JDK版本为1.5.0、数据库为SQL Server2000和Oracle 10g

从测试结果分析,随着数据量的不断增加,系统ETL过程所消耗的时间也就不断升高,但系统对少量数据完全可以满足一般的需求。系统不太适合增量数据过大的情况下的应用。系统整体运行平稳,CPU占用率在28%~32%之间。

7 结束语

通用ETL过程的实现是一个比较复杂的过程,各方面需要考虑的因素很多。目前,通用ETL工具的开发研究工作一直都是国内外在数据仓库建设方面的重点和热点。采用JAVA语言和XML技术设计实现了ETL过程的跨平台运行、多线程处理,支持增量同步更新,从而更好地加强通用性和使用效率。同时,数据清洗方法和转换效率有待进一步的提高。

参考文献:

[1] Inmon W H. Building the Data Warehouse[M]. New York: Wiley & Sons,1993,16:4-5.

[2] Paulraj Ponniah. Data Warehousing Fundamentals[M].New York:Wiley,2001,25:22-27.

[3] 马瑞新,许力.基于SOA的实时ETL的研究与实现[J].计算机工程与科学,2007,29(8):3-4.

[4] 王强,刘东波,王建新等.数据仓库元数据标准研究[J].计算机工程,2002,18(6)30-33.

[5] 胡逢彬,沈炜.数据ETL过程中的数据质量控制[J].信息技术,2006,(4):19-21.

上一篇:Windows文件系统自动化测试框架的研究与设计 下一篇:MPLS二、三层VPN实现与分析