商场数据仓库ETL系统架构设计
基于CWM的商场数据仓库ETL系统架构的编码实现拟采用Java语言。之所以选择Java语言,不仅因为它是一种简单的、面向对象的、分布式的语言,并且具有平台无关性和安全性等优点,下面一起就和我来了解了解!
一、ETL 概述
ETL是数据抽取(Extract)、转换(Transform)、加载(Load)的简写,它是指:将各种异构数据源中的数据抽取出来,并将不同数据源的数据进行转换和整合,得出一致性的数据,然后加载到数据仓库中。ETL工具,是数据仓库系统的重要组成部分;是影响数据仓库系统成败的关键。
获取ETL工具有两个途径:利用现有商品化ETL工具,虽然能缩短系统的开发周期,但存在投资成本大,软件的针对性、通用性、兼容性差的问题。自行设计开发一个标准通用的ETL工具,提高ETL的实用价值,降低项目实施的成本和风险,具有重要的意义。
由于数据仓库和数据源系统在数据格式、数据模型等方面存在很大差异,客观上形成数据仓库ETL实现过程很大的难度。在ETL的工作过程中,每步都和数据仓库元数据密切相关。
按照传统的定义,元数据(Metadata)是关于数据的数据。元数据支撑了数据仓库开发应用的全过程,成为数据从数据源到数据仓库的桥梁。
数据抽取阶段,没有相应的映射规则,就无法知道需要抽取什么样的数据;在将源数据存储格式转换为目标数据存储格式时,需要知道源存储格式和目标存储格式的信息,以及相应的存储格式之间的转换规则;在数据加载阶段,需要知道目标数据仓库的数据结构和相关信息。所有这些信息,都需要元数据提供。
由此可见,ETL过程自始至终都需要元数据的支持和控制。正因为如此,要解决ETL开发中的问题,应当从相关的元数据着手。
二、关于CWM 及其提供的工作机制
CWM(Common Warehouse Metamodel 公共仓库元模型)是 国际对象管理集团OMG推出的数据仓库元数据管理规范。CWM的主要目的是在分布异构环境下,使数据仓库工具、工作平台和元数据存储库之间易于进行数据仓库元数据的交换。
CWM基于以下三个工业标准制定:
(Unified Modeling Language统一建模语言)
作为目前最为风行的建模语言,UML用于描述一般数据仓库架构的元模型。
(Meta Object Facility 元对象工具)
MOF是OMG元模型和元数据的存储标准,用以定义存储库的结构、对外接口和交换格式的映射规则。
(XML Metadata Interchange,XML元数据交换)
XMI是基于XML的元数据交换。定义如何用XML表示基于MOF的元数据,使元数据以XML文件流的方式进行交换。
基于上列三个标准,CWM为数据仓库工具之间共享元数据,制定了一整套关于模式、语法和语义的规范。主要包括:
(1)CWM元模型(Metamodel):描述数据仓库系统共享的元模型。它由一系列子元模型构成。
(2)CWM XML:CWM元模型的XML表示。
(3)CWM DTD:DW/BI共享元数据的交换格式。
(4)CWM IDL:DW/BI共享元数据的应用程序访问接口。
基于CWM的数据仓库元数据转换和管理模型可用图1表示。从图1不难理解,元数据库也是基于CWM标准,通过CWM元模型映射构建。CWM 以UML 的元模型为基础,针对数据仓库领域的应用,使用特定的元类、元关系,将来自各异构数据源和数据仓库各个组件中的元数据,通过CWM XML、CWM DTD、CWM IDL 三个规范,转化为XML 文档。为数据仓库元数据管理提供了满足元数据交换所需的语法和语义规范的、方便元数据交换和元数据存储的XML文件。
三、基于CWM的数据仓库ETL系统架构
1.基于CWM的ETL系统架构
在研究ETL和CWM的基础上,设计出基于CWM的数据仓库ETL过程的系统架构。
2.系统架构的结构分析
(1)ETL子系统结构
ETL子系统结构由五个模块组成。即:系统调度模块、元数据管理模块、数据抽取模块、数据转换模块和数据装载模块。其中,数据抽取模块负责将超市业务系统的原始数据进行抽取并保存到临时数据库中;数据转换模块负责对抽取出来的数据进行清洗、转换和计算汇总;数据装载模块负责将经过清洗、转换的、符合目标数据模型的数据装载到目标数据库中。以上三个模块的活动被系统调度模块统一调度,结合元数据管理模块对整个ETL过程进行统一控制,用以实现ETL各步骤的定时触发、正常执行和异常控制等过程。
(2)CWM对系统元数据的规范
整个架构以CWM元模型库为基础,通过CWM工作机制,把各个层次的元数据规范化后,存储在元数据库中,再由元数据管理模块支撑并控制整个架构的运行。
(3)建立集中式元数据库
为了便于对数据仓库的元数据进行有效管理,按照通用的元数据管理标准建立一个集中式的元数据库。在所建元数据库中,通过建立“信息模型”的方法对元数据进行分类,并建立分类存储的、通用的信息目录。把技术元数据和商业元数据存储在不同的信息目录中。便于适应不同的服务目标、不同的元数据结构的存储和管理。元数据信息目录面向数据仓库的应用程序。应用程序可以通过访问该目录,使用、存储、管理元数据;用户也可以通过该目录,对元数据进行浏览、查询和使用。整个架构,都集中在元数据的统一控制之下。
四、CWM对ETL提供的技术支持分析
元模型结构
由于系统架构建立在CWM元模型基础之上,CWM通过对元数据的统一规范和管理,实现了对整个架构的.支持。
为了便于分析CWM对ETL子系统中各个模块的支持,图3给出了CWM元模型结构示意图。在CWM的总体结构中,可分为5个层次,由若干互不相同但又紧密相关的子元模型包构成。图中灰色部分是CWM对ETL子系统有着直接联系和支撑CWM元模型包。
2.对数据抽取模块的支持
在CWM的资源层中,五个元模型分别对五种不同的数据源进行了建模。五种数据源格式分别是:面向对象的数据格式、关系型数据格式、记录型数据格式、多维数据格式和XML数据格式。这五个元模型所描述的数据格式相当齐全,利用它们,可以把商场常用的、历史遗留的数据源都描述出来。从而得到各种不同格式的数据源的元数据,为ETL对数据源的抽取过程提供了支持。
3.对数据转换模块的支持
ETL的核心还是在于“T”这个过程,也就是转换过程。而抽取和装载一般可以作为转换的输入和输出,因此,我们重点研究了CWM对数据转换过程的支持。
在CWM分析层中,转换包对ETL过程进行了详细的描述。转换包的主要作用是:将一次转换活动的数据源和目标准数据关联起来,同时支持“黑盒”和“白盒”转换,可将一组转换组成一个逻辑单元。一次转换可以将一组源对象转换成一组目标对象。数据对象集合可以是任何模型元素,但通常是表、字段或者内存对象。
CWM管理层中的数据仓库操作包,记录了数据仓库的三个重要事件。其中的转换执行事件定义了记录转换活动结果的类。在转换完成之后,转换活动的结果可被活动执行类和步骤执行类记录。这个记录行为是对发生在数据仓库操作包中的一个内部事件、或者其他类似方式的回应,为每个转换执行记录开始、结束时间,各种进展和结果的指标。便于需要时查询。
4.对数据调度模块的支持
系统调度模块负责对ETL过程进行统一调度和异常控制,保证ETL正常运行。在CWM的管理层中,数据仓库处理包描述了数据仓库处理(实际上就是转换过程)的调度方面的信息。在数据仓库处理包中,定义了能够触发转换活动执行的一系列事件。这些事件控制了数据转换过程的调度。
5.对数据装载模块的支持
数据装载模块负责将经过清洗、转换的、符合目标数据模型的数据装载到目标数据库中。在CWM的支持下,完成了对源数据的抽取和转换,在系统元数据的控制下,把正确的数据加载到数据仓库中,就是一件极其简单的事了。
总之,CWM为ETL 提供的技术支持,为ETL各个功能模块的实现奠定了基础。为系统架构的实施提供了条件。同时,也保证了ETL子系统的通用性和可扩展性。