1、 本 科 毕 业 论 文 ETL 系统 的 仓库任务 调度 模块 的 实现 Implementation of Warehouse-Task Scheduling Module of ETL System 姓 名: 学 号: 学 院:软件学院 系:软件工程 专 业:软件工程 年 级: 校内 指导教师: 校外 指导教师: 年 月 摘 要 数据仓库 作为支持企业决策而出现的一项技术,提供了可以访问决策型数据的集成统一的环境。 ETL(Extract, Transformation, Load, 即数据 抽取、转换、装载 )作为数据 集成过程的抽象 , 在整个数据仓库项目实施过程中扮演着重要的角色。
2、据调查统计,实施数据仓库的项目开发团队花费在 ETL 上的精力占了整个项目的 60至 80。对 ETL 工具的选择,将对整个数据仓库项目产生重大影响。 2008 年实现运营商重组 后 ,中国电信行业进 入了 3G 时代。进入新的时代意味着即将面临挑战与竞争。 提高企业核心竞争力,关键在于如何充分利用信息资源。中国电信多年的发展 中 积累了大量的数据,这些数据相对独立地存储在丰富多样的业务系统中,其中包含着客户、用户、产品、销售、运营等方面信息。如何从这些分散 ,零乱的信息中找到其中的价值信息,为企业的经营决策提供依据,提高企业竞争力成为企业信息化的重要目标。因此,中国电信实施数据仓库项目,对于
3、提高企业综合实力,核心竞争力都有着重要的意义。 本文 ETL 系统 背景是中国电信企业的数据仓库项目,通过自主研发,实现数据的抽取、 转换与装载。 系统 架构分为前台开发系统与后台 ETL 任务调度系统。前台系统满足数据仓库项目的开发需求,开发人员可以进行数据转换脚本的开发;后台系统完成 ETL 任务的自动调度,实现数据不间断的从源系统进入数据仓库中存储; 系统 设计提供对 ETL 任务调度的监控功能,可以查看任务执行状况,有效的定位任务出错原因,并做出相应的处理。 ETL 系统 具有以主要特点 : 1.前台采用 B/S 架构,符合 J2EE 规范, 系统 移植性好,部署容易; 2.自定义脚本
4、语言,支持 SQL 语言,并提供内置参数,方便数据转换的脚本编写; 3.系统前台与后台耦 合性低,开发人员无须 面对复杂的后台调度; 4.系统 核心部分调度功能,使用存储过程开发,充分利用数据库性能, ETL效率高。 关键字 : ETL;数据仓库 ;电信行业 Implementation of Warehouse-Task Scheduling Module of ETL System Abstract Data warehouse is a technology that supports an enterprise to make decision. Mostly it is an int
5、egrated and uniform environment that is provided to access analytical data. As the abstract of the process of integrating data, ETL (Data extract, transformation, loading) plays a very important role in the whole process of implementing a data warehouse project. As the survey reveals, it takes up 60
6、 to 80 percent time of entire DW project to develop and carry out ETL. Therefore, how to choose an ETL tool will make a great impact on the DW project. The China telecommunications industry was reorganized in 2008. At the same time, 3G times began in the telecommunications industry. For the China Te
7、lecom, a new round of challenge and competence has begun. For the past ten years, the China Telecom has accumulated a large number of businesses information. To search individual systems for valuable information to support enterprise to make decision is the main goal of enterprise informationalizati
8、on. So, carrying out The Data Warehouse Project contains important significance in strengthening the comprehensive strength and core competence of the China Telecom. The China Telecom DW Project is the background of this thesis. The ETL system consists of two subsystems: Development System and ETL T
9、ask Scheduling System. The previous one lets developers write scripts to achieve data transformation. The latter one makes the ETL tasks called automatically. And it allows inspecting the execution of ETL task. The main features of this ETL system: 1 B/S architecture, easy deployment; 2 Simple scrip
10、t language, easy development; 3 Low coupling between development system and ETL task scheduling system; 4 High performance based on database procedure. Keyword: ETL; Data Warehouse; Telecom Industry目 录 第一章 绪论 . 1 1.1 项目背景 . 1 1.2 应用现状与存在的问题 . 2 1.3 论文主要内容 . 4 1.4 论文组织结构 . 5 第二章 ETL 系统 的总体设计 . 6 2.1
11、ETL 概述 . 6 2.2 ETL 系统 的需求分析 . 9 2.3 ETL 系统 的框架 . 12 2.4 仓库任务 调度模块的 总体设计 . 14 2.5 小结 . 18 第三章 仓库任务调度模块的实现 . 19 3.1 开发工具与软硬件环境 . 19 3.2 仓库任务调度 模块的实现 . 19 3.3 仓库 任务的状态图 . 31 3.4 小结 . 31 第四章 ETL 系统 的集成展示 . 33 4.1 ETL 配置 . 33 4.2 ETL 监控 . 39 4.3 仓库任务调度执行结果 . 43 4.4 小结 . 45 第五章 总结与展望 . 46 5.1 总结 . 46 5.2
12、展望 . 47 参考文献 . 48 致 谢 . 50 Contents Chapter 1 Introduction .1 1.1 Project Background. 1 1.2 The Current Applications of ETL and Existing Problems.2 1.3 Contents and Tasks.4 1.4 Architecture of Thesis.4 Chapter 2 Overall Design of ETL System. . 6 2.1 Basic Concepts of ETL.6 2.2 Requirement Analysis o
13、f ETL System.9 2.3 Framework of ETL System.12 2.4 Overall Design of Warehouse-Task Scheduling Module.14 2.5 Summary.18 Chapter 3 Implementation of Warehouse-Task Scheduling Module19 3.1 Development Language and Environment.19 3.2 Module Design and Implementation.19 3.3 Warehouse-Task State Diagram.3
14、1 3.4 Summary.31 Chapter 4 Exhibition of ETL System .33 4.1 ETL Configuration .33 4.2 ETL Inspection.39 4.3 Module Scheduled Results.43 4.4 Summary.45 Chapter 5 Conclusions and Future Work. 46 5.1 Conclusions.46 5.2 Future Work.47 References. 48 Acknowledgements.50 第一章 绪论 1 第一章 绪论 随着信息技术在各行各业中的广泛应用,
15、以及 越来越激烈 的 市场竞争,数据仓库技术应运而生, 并 逐步被应用于支持企业战略决策 、 企业经营分析等方面。 数据仓库作为企业数据的集中地,面临着如何高效的集成 各个源系统的数据 , 如何保证进入数据仓库的 数据质量等多方面的问题。本章对数据仓库以及其重要支撑技术 ETL 技术的理论和存在的问题进行了阐述,并对本 文 的主要内容和论文结构进行总体概述。 1.1 项目背景 “ 数据仓库 ” 一词很早就被提出,可以说是由 Bill Inmon 先生在 1991 年出版的 “ Building the Data Warehouse” 一书中所提出的,其描述如下:数据仓库是一个面向主题的、集成的
16、、不可更新的、随时间不断变化的数据集合,它用于支持企业或组织的决策分析处理。 从中我们可以清楚的看出 数据仓库是什么,有哪些特征, 做何用途。 数据仓库是时代发展的产物, 它的出现是为满足企业更高需求 因而 有 其 必然性。 从 信息技术在商业领域 的 应用 过程中可以看出, 信息系统正在经历着“ MISERPBI ” 的演变过程 1。 在信息系统应用过程中伴随着海量的数据累积, 同时 这些积 累的数据存在着一系列的问题: 诸如 信息囚笼、信息孤岛和信息对抗问题 1。 为了解决特定的问题, 于是数据仓库 (Data Warehouse)技术应运而生, 同时奠定了 商业智能 ( BI)的基石。
17、数据仓库技术正是在信息暴涨的当今社会,寻求从海量的数据中获取有价值的信息从而支撑企业领导人做出有效的商业决策的解决方案。现今应用数据仓库解决方案的有金融、电信、保险、零售、税务、证券、 航空、铁路运输、邮政 等等行业 2。 正如前文所述,长期累积的企业数据存在着不可忽视的问题,主要表现为企业数据异构性 ,有 以下 三个方面 3: 1 系统异构,即数据源所原来的业 务应用系统,数据库管理系统乃至操作系统之间的不同构成了系统异构 ; 2 模式异构,即数据源在存储模式上的不同。存储模式主要包括关系模式、电信企业数据仓库的 ETL 平台设计与实现 2 对象模式、对象关系模式和文档嵌套模式等几 种。同时
18、,既便是同一种存储模式,它们的模式结构可能也存在着差异 ; 3 来源异构,即企业内部数据源和外部数据源之间的异构 4。 因此, 如何整合数据,统一数据的存储格式, 保证数据集成后的质量是数据仓库所要解决的主要问题。 ETL 作为数据仓库的核心技术之一,是构建数据仓库的主要环节,其主要功能包括从源系统中识别并 抽取出必要的信息,然后将从不同源系统中抽取出的数据转换成统一的数据格式,并基于业务规则对结果数据集进行清洗,最后将数据高效的加载到数据仓库或数据集市中。因此我们说 ETL 在数据仓库和业务系统之间搭起了一座桥梁,或者说是一条通道,确保了新的业务数据能不间断的进入数据仓库。 中国电信 作为上
19、市公司,同时面临着日益开放和竞争激烈的电信市场,在加上 电信行业的重组, 3G 业务的发展 , 为了更有效的参与市场竞争,提升企业的核心竞争力,中国电信 制定了 5 年内 把中国电信建设成为世界级的 现代 电信企业集团,从而完成 “ 做世界级综合信息服务 提供商 ” 的战略目标 5。其中的数据仓库项目正是 为了 打破数据来源的壁垒,对来源于全省多个业务系统的不同数据进行整合,建立一个 “ 大集中 ” 的数据仓库,构造真正意义上的 “ 客户统一视图 ” ,让领导和分析人员能切实掌握电信客户、用户的全面信息,为决策提供完备的依据 6。 福富软件技术股份有限公司数据仓库项目组负责为中国电信实施企业数
20、据仓库, 考虑到 电信行业的行业特性,以及中国电信对数据仓库项目的投入等方面因素,自主开发一款 ETL 工具,实现 实施过程中的核心环节 数据的抽取、转换、装载过程 。 1.2 应用 现状 与存在的问题 国外对数据仓库技术的研究和应用起步较早,同样对于支撑数据仓库的关键技术 ETL 技术的研究相比较之下,国内也是晚于国外。 1.2.1 ETL 应用现状 数据 ETL 主要在数据仓库( Data Warehouse)、数据仓库中的知识发现( Knowledge Discovery in Database, KDD)和总体数据质量 管理 ( Total data 第一章 绪论 3 quality
21、management, TDQM)这三个领域中应用 7。 目前,对 ETL 根据的研究主要包括 ETL 处理过程本身和 ETL 工具在整个数据仓库解决方案中的可 适应性 和可扩展性等等 8。 对于 ETL过程描述的研究主要集中在数据转换中的模式映射描述 9,10, 11,数据清理和数据转换的融合,以及如何使用 ETL 过程描述来追踪数据仓库中的数据来源。 目前市场上主流的 ETL 工具有 两 类 : 一是数据库厂商所提供的,例如Microsoft 公司的 Data Transformation Service( DTS) , Oracle 公司的 Warehouse Builder, IBM
22、公司的 Websphere DataStage( 2005 年 3 月, IBM 公司成功收购了Ascential 公司,集成了 Ascential DataStage) 等; 另一类是专门的 ETL 厂商(或数据集成厂商)提供,例如 Informatic 公司的 PowerCenter, CA 公司的 Advantage data transformer, Teradata 公司的 ETL Automation, Sunopsis 公司的 Sunopsis Data Conductor, SAS ETL studio, Business Objects Data Integrator( BO
23、DI)等。 除了以上提及的, 源于开源项目的 ETL 工具也是 ETL 发展的主要推动力。比较著名的有 Pentaho 的 Kettle12。 另外 的还有 CloverETL13、 Dengues Studio14等,它们基本上都 是 实现了图形化的 ETL 过程描述 。 此外, 在国内对系统的数据抽取工具的研究起步比较晚,一部分是与数据仓库系统设计及其应用背景或 BI 解决方案相关的、专用的数据抽取、集成工具,只能在其具体的业务背景下使用;另一部分则是直接编写脚本来实现数据的抽取、转换和装载或者只是一些功能简单的 ETL 工具。主要有 国内首家 ETL 工具厂商 Beecradle 公司的
24、 BeeLoad15(目前最新版本为 5.0) ; 北京睿智欣泰科技有限公司开发的 睿金 ETL( UDIS-ETL) 16;东南大学计算机数据库实验室自行设计和实现的通用 ETL 工具( SEU_ETL) 17。 1.2.2 存在的问题 ETL 部分是数据仓库项目中问题比较集中的部分,常见的问题如下: 1 元数据问题 元数据是关于数据的数据 18。数据仓库的元数据的作用是使数据仓库对象易于理解,通用元数据便于信息交换,同时可以提高系统是适用度和可扩展性,同时可以监控保证数据的质量。因此如何设计使用 ETL 元数据,充分 发挥元数电信企业数据仓库的 ETL 平台设计与实现 4 据的作用是 ET
25、L 工具设计的一个重要方面。 2 工具设计问题 数据仓库的数据量一般在 GB 级到 TB 级, 是设计一个考虑到方方面面通用性强的 ETL 工具,还是根据具体数据仓库实施环境设计满足具体业务需求的ETL 工具; 是采用整体架构,降低耦合性而牺牲数据抽取转换装载效率,还是为了 提 高 集成性 开发 效率 高的 ETL 工具,直接 关系到项目的投入 与进度。 3 ETL 工具选型问题 基于以上的各方面考虑因素,数据仓库项目实施过程中是选择购买专业的ETL 工具还是自主开发实现 ETL 工具仍是一个 颇具争议 的话题。前者来说,价格昂贵,但是 性能稳定,通用性高,功能丰富、强大,后者来说灵活性高,贴
26、近具体需求,但是项目开销大,工期长有一定的风险。 1.3 论文主要内容 本论文在前文所述的 中国电信数据仓库 项目背景下, 针对数据仓库实施过程中数据集成 所面临 的问题, 认识到 ETL 的重要性,综合考虑了 ETL 存在的问题, 福富软件 技术股份 有限公司数据仓库项目组, 决定自主开发一个 ETL 系统 , 实现 灵活配置数据转换规则 , 实现 自动调度执行 ETL 过程 , 从而 实现数据抽取、转换、装载 ,最终完成数据从业务系统进入数据仓库 。 论文 主要内容 包括 : 1 阐述 论文背景 ,分析了 ETL 存在的 问题。 根据项目的具体需求, 介绍了ETL 系统 的 架构即框架 设
27、计 ; 2 实现 ETL 系统 后台 系统的仓库任务调度 模块 ; 3 发现并 提出 系统 改进的地方 ,以及需要拓展的功能。 本项目 系统属于 是 自主研发,项目知识产权归福富软件 技术股份 有限 公司。整个系统开发 过程是 一次理论与实践相结合的 过程, 项目根据具体的企业需求,进行详细的分析, 提出了符合需求的解决方案, 开发并实现了系统,满足了客户的需求 。验证了 具体项目实现过程中会碰到 难已 预料的问题, 且具体问题 需要具体分析 。 根据 遇到的 具体 问题 会 发现 系统 有待扩展的功能。 第一章 绪论 5 1.4 论文组织结 构 本论文共有五章内容, 各章节内容如下: 第一章
28、 绪论 。本章 首先介绍了 项目的背景, 国内外 ETL 应用与研究现状,概括了论文的主要内容, 并 对本文的结构进行了概述 ; 第二章 ETL 系统 的总体设计 。本章 介绍了 ETL 的基本概念以及 ETL 的重要性和如何评价 ETL, 接着分析了 系统 的需求, 及 系统 的体系结构,并对 系统 后台系统的仓库任务调度模块 进行了总体设计 ; 第三章 仓库任务调度模块的 实现。首先介绍了项目的开发工具及软硬件环境,接着介绍了 仓库任务调度模块的 详细设计和实现,以及 系统 调度过程中 仓库层 实体 对应的调度任务 的状态变更图 ; 第四章 ETL 系统 的集成 展示 。本章为 ETL 系统 成果展示,展示了 ETL 系统在实际应用过程中 的开发 流程,如何进行实体配置、基本配置、依赖配置等。 最后 展示了 仓库任务调度模块执行的结果在前台 ETL 监控模块中如何展现,以及具体的执行结果 在数据仓库中的显示 ; 第五章 总结与展望 。 作为结论部分,本章节归纳了本论文的工作, 以及对未来工作的展望。