




文档简介
分分 类类 号号 _ 学号学号 _ 学校代码学校代码 _ 密级密级 _ 硕 士 学 位 论文硕 士 学 位 论文 面向面向实时数据仓库的达梦数据交换实时数据仓库的达梦数据交换 平台平台改进改进 学位申请人学位申请人 :付威付威 学 科 专 业学 科 专 业 :计算机计算机技术技术 指 导 教 师指 导 教 师 :吴恒山吴恒山 副副教授教授 答 辩 日 期答 辩 日 期 :2012 年年 5 月月 25 日日 10487 M201072271 A Thesis Submitted in Partial Fulfillment of the Requirements for the Degree of Master of Engineering Improvement of Dameng Data Interchange Platform Oriented On Real-time Data Warehouse Candidate : Fu Wei Major : Computer Technology Supervisor : Associate Prof. Wu Hengshan Huazhong University of Science and Technology Wuhan 430074, P. R. China May, 2012 独独创性声明创性声明 本人声明所呈交的学位论文是我个人在导师指导下进行的研究工作及取得的研 究成果。尽我所知,除文中已经标明引用的内容外,本论文不包含任何其他个人或 集体已经发表或撰写过的研究成果。对本文的研究做出贡献的个人和集体,均已在 文中以明确方式标明。本人完全意识到,本声明的法律结果由本人承担。 学位论文作者签名: 日期: 年 月 日 学位论文版权使用授权书学位论文版权使用授权书 本学位论文作者完全了解学校有关保留、使用学位论文的规定,即:学校有权 保留并向国家有关部门或机构送交论文的复印件和电子版,允许论文被查阅和借阅。 本人授权华中科技大学可以将本学位论文的全部或部分内容编入有关数据库进行检 索,可以采用影印、缩印或扫描等复制手段保存和汇编本学位论文。 保密,在_年解密后适用本授权书。 不保密。 (请在以上方框内打“”) 学位论文作者签名: 指导教师签名: 日期: 年 月 日 日期: 年 月 日 本论文属于 I 华中科 技大学 硕士学 位论 文 摘要摘要 在当前经济竞争激烈的信息化时代,实时数据仓库不仅需要为 BI(Business Intelligence)系统提供预测和分析的战略性支持,而且还需要提供实时战术性决策支 持。实时战术性决策支持要求实时数据仓库能够进行实时快速地更新,然而传统数 据仓库 ETL 周期调度更新方式和批量处理不能实施实时快速地更新,鉴于达梦数据 交换平台是一款专业的 ETL 产品,且不能对实时数据仓库提供实时支持,因此,对 达梦 ETL 改进以适应实时数据仓库环境具有重要意义。 基于实时数据仓库特点及对 ETL 新要求的分析,提出了一种实时数据仓库体系 结构;同时在对达梦 ETL 实现原理进行了深入研究基础上,从调度策略和 ETL 过程 执行两方面进行了改进。其一:考虑到传统数据仓库以天、星期和月等为周期进行 周期调度,这种方式的数据时延很大,不能满足实时数据仓库环境的要求。因此在 达梦 ETL 上增加了一种事件触发调度,事件触发调度是一种灵活的实时调度策略, 它结合了数据源中变更数据的特点及用户的需求等,可以实现从多角度设置触发条 件,能够实时地对数据仓库中数据进行更新,很好地满足实时数据仓库对 ETL 的实 时调度的需求。其二:实时数据仓实时性实时触发调度需要快速执行 ETL 过程,而 达梦 ETL 过程执行时,数据抽取、转换和装载过程各在一个线程中执行,因此采用 了多线程任务执行分解方案对 ETL 过程执行加于改进,实现多线程并发执行数据抽 取、转换和装载过程,通过提高并发度来提高 ETL 过程的执行效率。 通过实验表明,事件触发调度策略能够根据用户所设置的条件进行判断,在条 件成立时实时地把增量数据集中的数据更新到实时数据仓库中,并且多线程任务执 行分解改进在系统 CPU 资源没有得到充分利用时, 对 ETL 过程的执行效率有一个显 著的提高。 关键词: 实时数据仓库,数据交换平台,事件触发调度,多线程任务执行分解 II 华中科 技大学 硕士学 位论 文 Abstract Data Warehouse not only provides the service of strategic predicting analysis for BI, but also need to provide the service of real-time tactical analysis, in the era of fierce economic competition. the service of real-time tactical analysis requires that the data in the Real-Time Data Warehouse ware updated in time and quickly, but the traditional periodical scheduling strategy of ETL in Data Warehouse cant. in view that Dameng data interchange is a professional ETL products, but it couldnt provide the service of real-time tactical analysis, Therefore, the professional ETL improvement to adapt to the environment of real-time data is meaningful. Based on the in-depth analysis of Real-Time Data Warehouse and the new requirements for ETL, a kind of Real-Time Data Warehouse architecture was proposed. After the in-depth research of the implementation principle of Dameng ETL, there should make Dameng ETL better according to improving the two aspects of the scheduling strategy and executive process of ETL. Firstly, the traditional Data Warehouse is generally updated by day, week or month in term of periodically scheduling, and the scheduling strategy has the shortcoming of large time delay and cannot fit the environment of Real-Time Data Warehouse. So the event trigger scheduling strategy is employed on the platform of Dameng ETL, the strategy is a flexible scheduling manner, it can implement the setting of trigger condition from multiple perspectives and well combine the changed datas characteristic in the data sources with the requirements of the user, and can updates the data in Data Warehouse in time. Secondly, because of the requirement of the higher ETL work efficiency in Real-Time Data Warehouse and the fact that the processes of data extraction, data transformation, data loading run in their own thread in the process of ETL work, the schema of multi-threaded task execution decomposition for the execution of ETL work was proposed, and in the schema multi-thread execute the processes of data extraction, data transformation, data loading, and the schema promotes the ETL work efficiency by means of the improvement of concurrent degree. Lastly, the experimental results show that the schema of multi-threaded task decomposition can improve the ETL work efficiency and the strategy of event trigger III 华中科 技大学 硕士学 位论 文 scheduling is effective, can load data into the Real-Time Data Warehouse in time from the incremental data set in the situation of meeting conditions, and the schema of multi-threaded task decomposition can improve the ETL work efficiency in the condition that the system CPU resources is not used completely. Key words: Real-Time Data Warehouse, Data Interchange Platform, event trigger scheduling, multi-threaded task decomposition IV 华中科 技大学 硕士学 位论 文 目目 录录 摘要 . I Abstract .II 1 绪论 1.1 课题背景及意义 .(1) 1.2 国内外概况 (2) 1.3 课题主要研究工作 .(5) 2 实时数据仓库及达梦 ETL分析 2.1 实时数据仓库需求分析(7) 2.2 达梦 ETL 改进分析 (10) 2.3 达梦数据交换平台改进方案 (15) 2.4 小结 (16) 3 达梦 ETL 事件触发调度设计与实现 3.1 达梦 ETL 事件触发调度基本思想 . (17) 3.2 达梦 ETL 事件触发调度分析与设计 (18) 3.3 达梦 ETL 事件触发调度实现 . (21) 3.4 小结 (26) 4 多线程任务执行分解方案设计与实现 4.1 达梦 ETL 过程执行改进基本思想 . (28) 4.2 达梦 ETL 过程执行改进分析与设计 (29) 4.3 达梦 ETL 过程执行改进实现 . (34) 4.4 小结 (39) 5 实验与结果分析 5.1 实验方案的设计思路 . (40) 5.2 实验环境及测试数据介绍 (40) 5.3 实验流程和测试用例 . (41) V 华中科 技大学 硕士学 位论 文 5.4 实验结果分析. (43) 5.5 小结 (45) 6 总结与展望 6.1 全文总结 (46) 6.2 展望 (47) 致谢 (49) 参考文献 (50) 1 华中科 技大学 硕士学 位论 文 1 绪论绪论 1.1 课题背景课题背景及意义及意义 数据仓库是在上世纪 90 年代被人们提出来的,早在 1981 年 NCR 公司(national cash register corporation)为 Wal-Mart 建立了第一个数据仓库,数据总容量超过 101TB1。 数据仓库不同于数据库, 它是用于数据分析的, 用于建立企业的数据中心、 信息中心,是为企业 BI 系统提供决策支持。在数据仓库技术的应用及发展的同时, 出现了联机分析处理(On-line Analysis Processing, OLAP)和数据集市等技术,从而建 立了一整套数据仓库解决方案2。 随着商业活动竞争的加剧和数据仓库一些新的应用 出现,企业不仅要求数据仓库能够提供传统的战略性决策支持,还为 BI 系统提供实 时战术性决策支持3。 实时数据仓库要能够提供实时战术性决策支持,就必须要求对实时数据仓库中 的数据进行实时快速更新,以保证实时数据仓库中数据时延很小,历史数据是不能 提供战术性决策支持的。在数据仓库解决方案中,ETL(Extract, Transform and Load) 是其中的核心部分,ETL 负责对数据仓库中的数据进行调度更新,其中包括从不同 平台中异构的数据源中抽取数据经清洗转换后加载到数据仓库,以及数据抽取方式 和数据更新调度策略等。有关研究表明,在数据仓库的构建过程中,花费在 ETL 中 的成本占到整个数据仓库成本的三分之一之多;数据仓库运行时间中的 80%都用在 了 ETL 过程上;数据仓库 55%的运行代价都来自于 ETL4。 实时战术性决策支持需要 ETL 对数据仓库中的数据进行实时快速更新,然而在 传统数据仓库解决方案中,ETL 是以周期性调度方式进行数据仓库中的数据更新, 一般以天、星期或月为周期进行更新,而且数据更新的过程时间比较长,通过简单 地缩短调度的周期或直接更新等方式是不能满足实时数据仓库要求的,因为数据仓 库中数据不但需要不断地进行更新,同时也要接受用户的查询,大量的更新和查询 并发对系统的性能影响很大。鉴于达梦数据交换平台是一款专业的 ETL 产品,但不 能够对实时数据仓库提供实时支持,因此它面临着实时数据仓库所带来的挑战。基 2 华中科 技大学 硕士学 位论 文 于以上分析, 本文基于实时数据仓库的特点要求对达梦 ETL 进行改进, 通过改进 ETL 执行过程和增加一种数据调度更新的方式,使得达梦 ETL 能够适应于实时数据仓库 环境,能够对数据仓库中的数据进行实时更新,从而为企业提供实时战术性决策支 持。 1.2 国内外概况国内外概况 随着数据仓库很多新的实时性应用需求的出现,人们提出了实时数据仓库的概 念, 提出相对比较晚, 目前学术界对实时数据仓库及 ETL 等技术等进行了一些研究, 但实时数据仓库成功的案例比较少,还没有形成成熟的解决方案,目前各大主流数 据仓库产品提供商都还没给出。 1.2.1 实时实时数据仓库相关研究数据仓库相关研究 目前国内外学术界对实时数据仓库都进行了一些研究,但主要都集中在实时数 据仓库的数据更新调度和实时数据仓库的体系结构等方面。此外,工业界针对实时 数据仓库的解决方案还不够成熟,成功的案例也比较少,只在传统数据仓库解决方 案的基础上对实时数据仓库解决方案进行了一些实践探索。 1. 学术方面相关研究 在国外,主要有澳大利亚学者 Li Chen 和 Wenny Rahayu等人提出了一种基于 记录的重要性及变更的记录条数等因素对数据进行调度更新的机制5,Lukasz Golab 和 Theodore Johnson等学者对实时数据流仓库的更新调度进行了研究, 并提出了自己 的调度算法来对数据进行调度更新6。 Ronnie Abrahiem等学者提出了基于 SOA 的近 实时数据仓库体系结构,并给出了自己的体系结构模型7。 在国内,主要有东北大学和华北电力大学在实时数据仓库相关学术性方面了做 了比较深入的研究。华北电力大学对实时数据仓库系统数据更新和查询进行了研究, 针对实施方法,提出了基于 SOA 的实时数据仓库体系结构8,同时东北大学在以下 三个方面对实时数据仓库进行了研究。 (1) 针对实时数据仓库海量数据特点,Jie Song和 Yubin Bao 提出了增量分区的 方法,在此基础上并提出了三种有效的范围分区算法9。 3 华中科 技大学 硕士学 位论 文 (2) 对于变更数据捕获方法进行了研究,JinGang Shi 和 YuBin Bao 等人提出了 一种基于日志的变更数据捕获方式框架10。 (3) 在调度方面,Jie Song和 Yubin Bao 等人提出了基于优先级平衡调度和 ETL 触发调度两种调度策略,并给出了基于优先级的平衡调度算法和触发调度规则及算 法11,12。 2. 工业界相关实践探索 目前实时数据仓库解决方案还不是很成熟,但在应对实时数据仓库环境应用需 要时,工业界在现有技术的情况下对实时数据仓库架构进行了一些探索。具体有几 种架构方式。 (1) 用 CTF(Capture ,Transform and Flow)工具结合实时数据分区 CTF 工具是采用数据库与数据库对接的方式, 把源数据库中的数据先放入实时准 备分区中,然后再把数据导入传统数据仓库中。这种方式要求数据整合的复杂度要 比较低才能够保证数据的延时比较短。 (2) 用 EAI(Enterprise Application Integration)替代 ETL 工具 EAI 通常由中间件来完成数据的交互。对实时性要求非常高的系统,使用 EAI 作为 ETL 的一个工具,可以提供快捷的数据交互,结合实时数据分区可以构建实时 数据仓库,并且支持数据整合的复杂度可以比较高。不过在数据量大时采用 EAI 工 具效率比较差,而且实现起来也相对复杂。 (3) MB-ETL(micro batch ETL)结合实时数据分区 MB-ETL 和 ETL 传统周期调度方式相似,只不过缩短了它的调度周期,比如说 1 小时。通过建立实时数据分区13能够支持复杂度比较高的数据整合,但是这种方式 的数据时延比较大,一般都为小时级。 1.2.2 ETL 相关研究相关研究 目前,学术界主要从执行过程优化、数据分区14和实时更新调度等方面对 ETL 进行研究,而在工业界,国内外很多数据库和数据仓库供应商都提供了各自的 ETL 产品。 1. ETL 相关学术研究动态 4 华中科 技大学 硕士学 位论 文 (1) 西南石油大学学者Li Jian 和Xu Bihua对基于钻取数据仓库的ETL进行研究和 实现,并设计实现了一款钻取数据仓库 ETL 工具15,16。 (2) 武汉大学 Huaming Wang 和湖北科技大学 Zhiwei Ye 通过分析基于元数据 ETL 服务模型,提出了一种基于元数据的服务框架17。 (3) 东华大学 Lunan Li对基于元数据库 ETL 执行过程优化框架进行了研究,其 中为 ETL 设计了专门的元数据管理系统进行管理,以提高 ETL 的效率18。 (4) 福州大学的Yingying Tu和Chaozhen Guo对基于数据分区的智能 ETL工作流 框架进行了研究,通过智能模块的设计,根据系统的数据情况动态调整数据分区19。 (5) Alkis Simitsis 和 Chetan Gupta 等学者为了提高 ETL 执行过程效率,采用实 时 ETL 流分区技术,并设计了一种并行执行的体系结构20。 (6) Alkis Simitsis 和 Kevin Wilkinson等学者基于容错能力对ETL工作流进行优 化,其中对如何从错误中恢复过来设计了几种策略21。 2. ETL 相关产品 现在的 ETL 一般分为两种,一种是专业的 ETL 供应商提供的产品,这类产品一 般都具备比较完善的体系结构,产品的功能比较强大,能够适应非常多的平台,达 梦数据交换平台就属于这类 ETL 产品;另一类是整体数据仓库方案供应商提供的 ETL 产品,这类产品一般对提供商的相关产品有很好的兼容性并能非常高效的运作, 但是它的可移植性不好,对其他供应商产品的支持非常有限。 目前,市场上主流的专业 ETL 供应商提供的产品主要有 IBM 公司的 Data Stage 和 Informatica 公司的 Power Center 产品等,而作为数据仓库整体方案提供商所提供 的产品主要有 Oracle 公司的 Warehouse Builder 和 Teradata 公司的 ETL Automation工 具22,下面对当前主流的 ETL 相关产品做具体的介绍。 (1) Power Center Power Center 是 Informatica 公司开发的世界领先的企业信息集成平台,也是世 界领先的 ETL 工具。此产品是为满足企业级要求设计的,它具有强大的数据整合引 擎、高性能的运行功能和高安全的数据整合等特点,它是一个可以使大的企业或组 织能够按其复杂的业务信息需求, 对关系 ERP、 CRM 和电子商务平台进行数据集成。 5 华中科 技大学 硕士学 位论 文 (2) Data Stage Data Stage 是在 2005 年被 IBM 公司收购了, 是当前市场上主流的 ETL 工具。 Data Stage 具有出色的数据源连接能力,并行执行也是它的一大特色,在 ETL Job 设计好 后,可在多台装有 Data Stage Server 的机器上并行执行,这样可以充分利用硬件资源 提高执行效率,同时在硬件进行升级时并不需要对直接设计好的 ETL Job 进行重新 设计,它有很好的兼容性,其并行处理能力几乎趋于线性。 (3) ETL Automation ETL Automation 是 Teradata 公司的产品,它与前面两种产品的体系结构都不一 样,与其说它是 ETL 工具,不如说它提供了一套 ETL 框架。它对 teradata 数据库依 赖非常大,它是利用 Teradata 数据库本身的并行处理能力来处理转换,它的重点是 提供对 ETL 流程的支持,包括前后依赖、执行和监控等。 (4) 达梦数据交换平台 DMETL 是武汉达梦数据库有限公司的一款产品。DMETL 具有对多种平台和多 种类型数据源的支持、强大的调试功能和良好的用户界面等特点,同时还配备了监 控视图功能。 (5) Kettle Kettle 是一款国外开源的 ETL 工具,属于纯 java 编写的,它能够支持当前操作 系统平台,是当前开源 ETL 工具中最具影响力的一款工具,目前在国内项目中的应 用正在逐渐扩大。 1.3 课题主要研究工作课题主要研究工作 从前面的分析可知,实时数据仓库对 ETL 提出了新的要求,本文重点讨论达梦 数据交换平台,并对其加于改进,以期适应实时数据仓库,主要内容包括以下三个 方面: 1. 实时数据仓库体系结构 考虑实时数据仓库对其数据的实时性要求,即要求 ETL 对实时数据仓库进行快 速更新,基于达梦数据交换平台架构,研究实时数据仓库体系结构。 6 华中科 技大学 硕士学 位论 文 2. 事件触发调度 实时数据仓库要求 ETL 进行实时调度,而传统的周期调度显然已经不适应了, 因此需要对达梦 ETL 进行改进,希望增加一种新的调度策略,以满足实时数据仓 库进行实时调度的要求,以使得达梦 ETL 能够适应实时数据仓库环境。 3. 改进达梦 ETL 执行过程 在达梦 ETL 过程执行中,数据抽取、转换和数据装载过程都只在各自的线程中 执行,执行效率比较低,本课题将针对这个问题进行研究,希望能够通过多线程多 数据流并行执行,充分提高系统 CPU 资源利用率以提高 ETL 过程执行的效率,加快 实时数据仓库数据更新过程。 7 华中科 技大学 硕士学 位论 文 2 实时数据仓库实时数据仓库及达梦及达梦 ETL 分析分析 实时数据仓库主要是为支撑商务智能(BI)系统提供战术性决策支持,给 BI 系统 提供实时数据信息。实时数据仓库是实时行为和数据仓库两种事物的结合23,它不 同于传统的数据仓库,实时行为的特点决定了它对 ETL 有新的需求。本章首先分析 实时数据仓库的特点及它对 ETL 的新要求;其次讨论和分析达梦数据交换平台,包 括对总体框架24、调度策略、变更数据捕获(CDC)方式及执行流程等方面;最后给出 适应实时数据仓库环境的达梦 ETL 改进方案。 2.1 实时数据仓库实时数据仓库需求需求分析分析 实时数据仓库技术是在传统数据仓库技术基础之上提出的,同时实时数据仓库 具有的实时性特点,它对传统数据仓库解决方案提出了新的挑战,实时数据仓库的 数据要求是最新的数据,只要行为发生,数据变得可用25,且能够对用户产生有用 信息,就需要快速地把数据源中发生改变的数据经 ETL 导入到实时数据仓库,实现 实时数据转化为用户有用信息,以便 BI 系统作实时决策分析。 2.1.1 实时数据仓库实时数据仓库问题分析问题分析 在传统的数据仓库中,数据仓库中的数据是在非响应期周期性地进行批量更新, 这是根据一些应用特点所决定的,传统数据仓库主要用于预测分析和报表服务等。 但在今天新经济环境下,一些应用对数据仓库有新的应用需求,如客户关系管理系 统、反欺诈系统、呼叫中心及在线股票交易分析系统等26,这些应用都需要借助于 数据源中的实时发生改变的数据进行分析响应,因此对传统数据仓库提出了挑战, 从而提出了实时数据仓库的概念。实时数据仓库是一个解决方案,它不仅要求能够 实时地对实时数据仓库中的数据进行更新,同时它还不能对原数据仓库查询分析应 用系统的查询效率产生很大影响,这就是实时数据仓库所需要解决的问题。因为在 传统数据仓库中,数据仓库的更新一般都是在系统的空闲期对数据进行更新,因此 不存在数据的更新和应用系统的查询存在并发执行效率的问题。但是在实时数据仓 8 华中科 技大学 硕士学 位论 文 库中,数据的更新是需要在系统工作期间进行的,因此就存在数据仓库数据更新和 应用系统查询并发执行对系统效率产生影响的问题。 2.1.2 实时数据仓库与传统数据仓库实时数据仓库与传统数据仓库的的区别区别 由于应用要求的不同,实时数据仓库与传统数据仓库有着显著的区别,具体体 现在以下几个方面。 1. 决策支持类型不同 传统数据仓库只能提供战略性决策支持,通过对历史数据的分析,制定长期的战 略性决策。而实时数据仓库不仅要提供战略性决策支持,而且还需要通过对实时最 新数据的分析,提供战术性决策支持,战术性决策支持能够更加有效地帮助战略性 决策执行27。 2. 数据加载方式不同 传统数据仓库是通过批量的方式周期性进行数据加载更新。而实时数据仓库的 数据更新要求是实时动态的、更加灵活的,要求能够及时地把 OLTP 数据源中实时 改变重要数据经 ETL 导入数据仓库中,供用户决策支持所用。 3. 数据加载时机不同 传统数据仓库都是在系统空闲期或者非响应期对数据进行更新加载,例如晚上 等。而实时数据仓库是要求在系统响应期对数据进行实时的更新加载。 4. 响应时间要求不同 实时数据仓库对查询的响应时间要求比较高,一般控制在两分钟内。而传统数 据仓库,由于没有实时性特点,对查询响应时间要求不高,一般一个复杂的查询可 能需要耗上五分钟,甚至更长时间。 2.1.3 实时数据仓库体系结构实时数据仓库体系结构 实时数据仓库是一套解决方案,它以 OLTP 系统中的数据为基础,通过实时调 度方式动态地从各个分布、异构的数据源中进行数据抽取、经 ETL 清洗转换,最后 装载到数据仓库中,供决策支撑系统使用28。实时数据仓库解决方案在为 BI 系统提 供传统战略性决策支持的同时,还需要提供实时战术性决策支持。 9 华中科 技大学 硕士学 位论 文 在实时数据仓库环境中,是不能频繁地把数据源中改变的数据直接更新到数据 仓库中。因为数据仓库中保存着大量粗粒度的数据,即汇总数据。由于汇总数据和 细粒度数据需要保持一致性的要求,所以系统需要频繁地对汇总数据进行更新,把 细粒度中的数据同步到汇总数据中,但这种方式对系统的性能损失非常大,不能满 足应用系统查询和系统数据加载的需求29。 图 2.1 是一种基于 ODS(Operation Data Store)的实时数据仓库体系结构30,在其 中使用了操作数据存储(ODS)作为数据源和数据仓库的中间层, 用于存放实时性比较 高的数据31。在数据源中数据发生改变后,通过触发调度策略先将变更数据加载到 ODS 层数据库, 然后再以传统的周期调度方式在系统空闲时段将 ODS 中数据汇总到 数据仓库中。根据应用要求的不同,在需要实时分析时,可以从 ODS 层数据库获取 数据进行分析,也可以结合 ODS 层中数据和数据仓库中的数据进行查询分析。这种 体系结构既做到不影响传统数据仓库的应用的查询效率,同时又能够对实时应用提 供实时数据的查询。 传统数据仓库传统数据仓库ODSODS 文件数据源文件数据源 数据库 数据源 数据库 数据源 ETLETL 调度引擎调度引擎 执行引擎执行引擎抽取数据抽取数据 实时更新实时更新 调度执行调度执行 周期更新周期更新 触发监听触发监听 触发规则触发规则 实时查询实时查询 分析查询分析查询 操作ETL平台操作ETL平台 图 2.1 基于 ODS 的实时数据仓库体系结构 2.1.4 实时数据仓库对实时数据仓库对 ETL 的新要求的新要求 实时数据仓库需要实时快速地捕获数据源中最新变更数据到实时数据仓库中, 而如何快速地完成整个的抽取、清洗、转换、装载过程和实时地对 ETL 过程进行调 10 华中科 技大学 硕士学 位论 文 度执行都是由 ETL 工具所决定的,由此实时数据仓库对 ETL 提出了新的要求,具体 有以下几点: 1. 调度策略 考虑到数据实时性的要求,实时数据仓库中数据调度更新方式应该是实时动态 的。而传统的周期调度方式是根据时间特性周期性地进行数据更新调度,对于数据 源中变更数据的特点没有任何感知,统一对待,显然这种方式不能满足实时动态调 度的要求。实时数据仓库可以通过挖掘外部事件信息,如定性分析数据源中变更数 据的特点等,来对数据进行调度更新,实现灵活的调度策略32。 2. 变更数据捕获(Capture Data Changed, CDC) 实时数据仓库对数据时延要求比较高,要求每一次数据更新 ETL 过程都是非常 短暂的,而数据变更捕获作为 ETL 数据更新过程的首要过程,传统的一些基于数据 对比进行变更捕获方式显然已经不能适应实时性的要求33。鉴于此,只有一些能实 现快速捕获变更数据的方式,如触发器方式和基于数据库日志文件的 CDC 方式等, 才适合于实时数据仓库环境下 ETL 中用于增量抽取34。 3. ETL 过程执行效率 数据仓库中数据时延大小是不小于 ETL 过程执行时间的,因此要想降低数据仓 库中数据时延,就应该提高 ETL 过程的执行效率,降低 ETL 过程的执行时间,基于 此,对 ETL 执行过程进行优化,提高 ETL 过程的执行效率显得非常有意义35。 2.2 达梦达梦 ETL 改进改进分析分析 达梦数据交换平台是一款专业的 ETL 产品,能够实现不同平台下异构数据源中 的数据清洗转换,最后加载到数据仓库中。达梦 ETL 的功能非常完善,首先,它支 持目前主流的各种数据库类型和文件类型的数据源, 如 Oracle, Sybase, DB2, Mysql, SQL Server,Access,Excel,Mdb 文件,Excel 文件等;同时它提供很多的清洗转换 组件,如数据库查找、查找替换和数据清洗转换等。其次,客户端提供界面非常友 好的转换流程设计器,用户设计 ETL 流程非常方便;同时它还提供执行调试功能和 ETL 任务的运行监控功能。最后,它的执行效率比较高,数据抽取、转换和转载过 11 华中科 技大学 硕士学 位论 文 程能支持并发执行;同时还能够支持当前各种主流的操作系统平台,如各套件厂商 的 LINUX、UNIX 及 Windows 操作系统等。 2.2.1 达梦数据交换平台总体架构达梦数据交换平台总体架构 达梦数据交换平台目前是 C/S 架构为主,它分为客户端和服务器端两部分,客 户端和服务器之间支持 RMI 和 HTTP 两种通信方式,服务器也可以为 B/S 架构提供 服务。达梦数据交换平台采用了富客户平台/开放服务网关协议(Rich Client Platform/ Open Service Gateway Initiative,RCP/OSGI)插件开发技术,RCP 采用了扩展点的机 制,通过对扩展点的扩展来实现 Eclipse 插件开发,这样既可以实现系统功能即插即 用,又给以后维护工作带来很大的方便。客户端中流程设计部分采用功能强大的图 形编辑器框架(Graphical Editor Framework,GEF)技术,这样在流程设计时只需要通 过简单的组件拖放来完成。 图 2.2 描述的是达梦数据交换平台的整体架构。 ETL执行引擎ETL执行引擎 ETL调度引擎ETL调度引擎 元数据库元数据库 客户端 服务器 客户端 服务器 ETL整体框架ETL整体框架 数据库 数据源 数据库 数据源 数据仓库数据仓库 文件数据源文件数据源 数据装载处理器数据装载处理器数据转换处理器数据转换处理器数据抽取处理器数据抽取处理器 系统缓存区系统缓存区 ETL流程设计等用户操作ETL流程设计等用户操作 数据读者数据读者 数据写者数据写者 读写数据读写数据 服务监听服务监听 图 2.2 达梦数据交换平台整体架构 12 华中科 技大学 硕士学 位论 文 从图 2.2 中可以看出, 达梦数据交换平台的客户端和服务器都是通过元数据库进 行统一管理,目前达梦数据交换平台元数据库支持 Derby、External DM6、External DM7 和 Oracle 四种类型。用户在客户端中设计流程等操作,把用户操作的信息保存 在元数据中,然后向服务器请求服务,服务器端的服务监听端口打开,接受客户端 的请求,服务器主要由执行引擎、数据处理和调度引擎模块等组成,执行引擎控制 着 ETL 流程的执行,进行数据抽取、转换和装载等工作,调度引擎负责对转换或作 业进行调度执行。 2.2.2 达梦数据交换平台调度策略达梦数据交换平台调度策略 达梦数据交换平台是采用传统的周期调度策略, 周期调度策略是根据系统时间周 期性地执行 ETL 过程,用户在客户端设置周期调度开始时间、结束时间和调度周期 等信息,服务器根据系统时间进行执行,在 ETL 调度引擎开启的前提下,调度设置 结束时计算下一次调度执行时间,当系统时间为此调度时间就进行执行,并在提交 执行的同时还计算下一次调度执行时间。但有时调度会发生冲突,即上一次调度执 行还未结束,但又到了下一次调度的执行时刻,此时采取跳过下一次调度执行策略 来避免运行冲突。 在实时数据仓库环境中,数据的新鲜度和系统的性能在一定程度上是存在对立 关系的,新鲜度的提高会降低系统的性能,反之亦然。为了保证更高的数据新鲜度 和更好的系统性能,实时数据仓库中需要有一种有效平衡的调度机制,使系统有限 的资源得到充分使用。 基于以上分析,实时数据仓库需要实时动态的调度更新,而传统周期调度方式 是周期执行的,显然不适合使用在实时数据仓库环境下,本课题将采用事件触发调 度策略。事件触发调度策略能够灵活地根据事件外部消息等进行触发调度执行,能 够满足用户对实时重要信息的捕获的要求,它没有周期调度漏过重要信息捕获的可 能性,同时又摆脱了点滴插入调度方法对系统性能影响大的缺点。事件触发调度通 过结合用户的要求和外部事件的特点来调度执行,如对数据源中改变数据的定性分 析等。定性的分析使得事件触发调度具有重要信息价值的针对性,摆脱了周期调度 和点滴插入调度的盲目性等缺点,不分数据的重要性等特点而统一对待。 13 华中科 技大学 硕士学 位论 文 2.2.3 达梦数据交换平台达梦数据交换平台变更变更数据数据捕获捕获 目前达梦数据交换平台增量抽取36能够提供触发器方式、时间戳方式、MD5 方 式和全表对比方式四种变更数据捕获方式37,具体实现原理如下: 1. 触发器方式 触发器方式是借助于数据库系统触发器功能,通过在数据源中的表上建立触发 器来对表的修改操作进行监控,并把修改的相关数据记录在增量表中,最后通过获 取增量表中数据来得到原表中变更数据,其中增量表的结构是在原表结构上增加 ID 和 OPT 两个字段, ID 是一个长整型自增列字段, OPT 是一个用于记录修改类型的字 符字段。修改操作分为三种,即插入、修改和删除。其中对于原表中数据的插入和 删除,在增量表中只记录一条数据,其中的 OPT 字段值为 I 和 D;对于原表中数据 的更新操作,需要在增量表中记录两条数据,一条记录更新前的数据,其中的 OPT 字段的值记为 UO, 另外一条记录的是更新后的数据, 且其中的 OPT 字段值记为 UN。 2. 时间戳方式 时间戳方式需要在原表结构上增加一时间戳列,时间戳列是根据修改时间的先 后依次增大,通过时间戳列的比较可以获取最近一次抽取后的变更数据。最近一次 数据抽取时的时间戳值是保存在元数据库中的,并且每次数据抽取时都把该值更新 为当前时间戳值,这样进行时间戳列比较所得到的都是最近一次数据抽取后的变更 数据。 3. 全表对比方式 全表对比方式是通过比较上一次抽取时和当前时刻表中的数据的方式来捕获变 更数据,全表对比方式需要把原表中的数据拷贝到另外一张拷贝表中,拷贝表用来 保存最近一次数据抽取时原表中的数据,并且每次数据抽取时把拷贝表中的数据更 新为当前表中的数据。 4. MD5 方式 MD5 方式与全表对比方式的方法很相似,MD5 方式是通过 MD5 值的比较来捕 获变更数据,它需要建立一张历史表,用于保存最近一次数据抽取时表中的记录及 每条记录的 MD5 值,MD5 字段的值是根据记录中所有字段的值进行 MD5 方式计算 14 华中科 技大学 硕士学 位论 文 得出的,记录的修改会导致 MD5 值的改变,这样在数据抽取时,通过比较当前表中 MD5 字段的值和历史表中的 MD5 值来捕获变更数据,数据抽取结束后对历史表中 的数据进行更新。 触发器方式和时间戳方式是借助于数据库系统提供的功能来实现变更数据捕获 的,MD5 方式与全表对比方式都是基于对全表的扫描对比捕获的,但不同的是 MD5 方式能够对大字段值发生修改的情况进行捕获,而全表对比方式不能。以上四种方 式进行变更数据捕获时只有触发器方式不占用 ETL 执行的时间,能够实现快速捕获 变更数据,能够适应实时数据仓库环境,其他三种方式都需要占用 ETL 执行时间, 需要借助于达梦 ETL 来进行变更数据捕获。这四种方式对数据库系统都会带来不同 程度的影响。目前学术界已经提出了基于日志分析的变更数据捕获方式,这种方式 是通过对数据库系统的日志文件的分析来捕获变更数据,这种方式对数据库系统的 影响非常小,且能够实现快速捕获,很适合实时数据仓库环境,虽然实现比较复杂, 但这是目前达梦数据交换平台努力的方向38。 2.2.4 达梦数据交换平台执行流程达梦数据交换平台执行流程 用户在达梦 ETL 客户端中设计转换流程,从数据抽取组件,经清洗转换组件, 最后到数据装载组件。在达梦数据交换平台设计的早期,数据的抽取、清洗转换和 装载过程都是在同一个线程中运行,即主线程中执行。经过后期的分析改进,目前 在 ETL 流程执行时,将数据的抽取、清洗转换和装载过程分别从主线程中抽离出来 了,分别由三个不同的数据抽取、转换和装载线程来执行,使得整个 ETL 过程执行 时,数据抽取、转换和装载线程并发执行,如图 2.3 是理想状态下 ETL 执行时空图。 时间轴 处 理 流 ETL ETL ETL 图 2.3 理想状态下 ETL 执行时空图 15 华中科 技大学 硕士学 位论 文 目前数据抽取、转换和装载过程都分别由专门的线程进行执行,能够实现各线 程流水线执行39,一定程度上提高了执行的效率。但是随着海量数据的出现,ETL 过程执行的数据量也随着增大40,而且 ETL 转换过程也比较复杂,数据抽取、转换 和装载过程执行的时间是有很大差距的,各线程间并发执行时存在很多等待的过程, 图 2.3 中的情况也只是理想状态。针对目前达梦 ETL 执行效率不高,不能实现快速 执行 ETL 过程,对实时数据仓库环境不适合的情况,本文提出一种多线程任务分解 的改进方案,实现 ETL 过程快速执行,提高 ETL 过程的执行效率,以满足实时数据 仓库快速执行完成 ETL 过程的要求。 2.3 达梦数据交换平台达梦数据交换平台改进改进方案方案 2.3.1 达梦达梦 ETL 事件触发调度事件触发调度 考虑到实时数据仓库需要实时动态地进行数据更新的特点,而且传统的周期调 度策略不能满足此需求,因此本文给出了一种基于事件触发调度的策略,事件触发 调度通过结合用户的要求和外部事件的特点来调度执行,如数据源中数据发生修改 操作时产生的事件满足用户设置的触发条件时,就即时调度执行 ETL 过程等。 本文的工作之一就是在达梦数据交换平台的基础上设计并实现一种调度策略, 即事件触发调度策略。事件触发调度是根据 ECA 模型设计的一种调度策略,用户根 据需要从不同的触发规则来设置事件触发的条件,当外部事件满足触发条件时,根 据即时调度规则,就立即调度执行该 ETL 过程。在事件触发调度方案中,本文设计 了四种有效的贴近实际应用的触发规则,即变更数据的敏感度、数据量、敏感字段 的统计量和相对调度时间差四种触发规则;本方案采用了触发器方式来实现触发事 件监听,在满足触发条件后就即时调度执行的调度策略;ETL 调度引擎是事件触发 调度策略实现的关键模块,它负责对 ETL 过程调度执行的整个过程。 该方案的具体设计实现见第 3 章。 2.3.2 达梦达梦 ETL 多线程任务执行分解多线程任务执行分解 基于目前达梦 ETL 各个过程都只是在各自一个线程中执行,并且
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年电商平台售后服务流程再造与创新策略研究
- 2026届云南省化学高二上期末考试试题含答案
- 2026届黑龙江省齐齐哈尔市八中化学高二第一学期期中考试模拟试题含解析
- 2025年注册电气工程师考试 电气工程基础知识押题试卷
- 2025年考研英语(一)阅读理解长难句解析 模拟试卷汇编
- 玩具消毒知识培训总结课件
- 王玲老师月嫂培训知识课件
- 岩土面试题目及答案解析
- 吉林省吉林市吉化一中2026届高三上化学期中教学质量检测试题含解析
- 行业技术规范与市场趋势
- 拱桥拆除施工方案
- 社区医疗危急值报告制度及流程
- 2025年黑龙江省水利水电集团有限公司招聘笔试参考题库含答案解析
- 2025年一年级上学期班主任工作计划(3篇)
- 安全质量部部门及岗位职责
- 基于工作坊培训模式的叙事教育培训方案在实习护生共情能力培养中的应用效果
- 物业公司化粪池清掏服务方案
- 商会2025上半年工作总结及下半年工作计划
- 《城市河湖底泥污染状况调查评价技术导则》
- 《CIP培训资料》课件
- 无人机飞行安全知识讲座
评论
0/150
提交评论