基于CWM的ETL元数据库系统模型的设计
在工业领域,数据仓库连同前端的数据挖掘工具向企业高层提供决策分析的平台体系机制被称为商业智能(Business Intelligence,BI)。BI项目的实施牵涉到企业各个事务处理系统之间海量数据的定向流动,这个数据流动的过程被称为数据抽取、转换与装载(Extraction、Transformation and Loading,ETL),是BI系统的心脏与灵魂 [ 1]。ETL过程的管理目标与其数据质量是密切相关的,高效的ETL过程管理可以在一定程度上预防和控制ETL过程中出现的数据异常,是保障ETL数据有效性的重要手段。但是,在数据仓库实施中,ETL过程的多个业务逻辑交流环节都是基于人-人交流模式的,或者是通过人-文档-人的形式进行信息传递。这样的管理方式与数据仓库ETL过程的实际运行情况及结果是脱节的,使得ETL任务维护繁杂,返工代价大。鉴于此,本文提出基于公共仓库元模型(Common Warehouse Metamodel,CWM)标准建立ETL元数据库,它能描述ETL过程业务逻辑及数据变换细节,以此来实现人机交流,从而实现对ETL过程具体细节的管理及分析。
以CWM和ETL两个字段为关键字,在CNKI数据库里检索,结果得到6篇文章,年代主要分布在2005年至2010年。目前,基于CWM的ETL过程管理研究主要集中在以下几个方面:
(1)业务变更、高层汇总数据分析与实时业务结合的纵深数据分析、实时业务处理,快速定义并部署用户的多维查询,实现基于数据仓库的联机分析处理 [ 2]。
(2)元数据的集成与管理,解决元数据管理混乱问题,实现不同系统之间的元数据交换 [ 3, 4, 5]。
(3)数据的映射规则和转换规则 [ 6]。
(4)缩短数据仓库的开发工作量、缩短开发周期、降低项目实施的风险,提出标准的ETL [ 7]。
基于CWM的ETL管理目前主要应用于元数据的管理,而对于某些数据问题被特定用户发现后,如何找到问题发生的位置和原因,没有更深入的研究。
本文在ETL元数据库的基础设计了一个系统模型,包含业务规则的改变触发相应程序改动预警、ETL任务调度可行性分析、ETL数据流向图展示、数据质量问题溯源定位分析4种机制, 可以把ETL过程中的各种静态和动态信息“透明”地展示给数据仓库相关用户,增强ETL过程与用户之间的信息理解与传递,从而达到改善ETL过程管理质量的作用。
CWM是一个开放的业界标准,用于数据仓库及业务分析领域,为元数据定义公共元模型和基于XML语言的交换格式,描述一个完整的数据仓库系统的所有组成部分。作为能描述各种数据源和数据仓库对象的元数据,CWM本身就是一个相当复杂的信息体系。为了便于理解和易于开发者实现,CWM标准将元数据按照不同的功能和不同的描述层次进行分类,共分为21个元模型包,并在元对象机制(Meta Object Facility,MOF)框架中对不同包中的类与关联进行阐述 [ 8]。
在MOF框架中,底层的对象模型层是支撑基于该层以上整个元数据标准框架的基础。越往上层,元数据描述的内容就越宏观,越面向数据仓库的业务和管理。每个包的下层中与其相邻的包类对其起相应的支撑作用。对象模型层通过UML1.3描述框架来表达,它由4个包类组成,依次是核心包、行为包、关系包和实例包。其中核心包被其他三个包所依赖,它也被称为MOF元元模型 [ 9],定义了数据仓库中不同对象共有的属性和动作,并衍生出不同对象的子类。对象模型是由OMG组织以UML1.3规范标准进行表述的。
从CWM标准中的21个元模型包可以知道,位于某层中的元模型只依赖于位于它下层的相关元模型,故如何使用CWM标准应根据具体的问题域需求来选择相应的元模型包,建立满足需求的系统模型。实现和使用公共仓库元模型的一部分是CWM元数据标准一个很重要的特征 [ 10],这也是OMG组织设计原则的用意。所以,只需要使用与ETL相关的问题空间那部分CWM元模型即可。
与ETL转换过程细节和转换执行记录相关的包类有关系型包、转换包以及仓库操作包。其中,关系型包描述了ETL过程的静态元数据,转换包描述了ETL过程的动态元数据(包括转换过程细节和映射细节),仓库操作包描述了ETL过程实例级元数据。因此对于本文用于ETL过程元数据的应用功能来说,这些元数据已经能足够描述ETL过程的具体细节。
CWM标准中ETL的元数据可分为以下三大块:有关数据对象的静态元数据、有关ETL步骤和映射过程的动态元数据以及ETL实例执行记录元数据。以上的元模型包类给出ETL过程管理元数据模型框架。在其基础上,通过适当的裁剪与扩展,并添加基本属性和附加属性,得到系统的元数据库模型 [ 11]。 图1、 图2和 图3给出了ETL元数据库这三个部分的UML图。
在 图1中,表对象是查询集对象的超类,查询集是表对象的一部分。由于表属于已命名列集(NamedColumnSet),而查询集是没有名字的,CWM把它们都归类为Classifier的子类,这是基于整体元数据管理体系来考虑的。这一部分元数据模型对应于CWM标准中的关系型包。
在 图2中, CFM类表示一类非常特殊的转换映射关系。这种映射的一端是多个列,另一端是单列。在CFM类的属性中,“字段名”代表的是单列端,“Classifier列集”代表的是多列端,多列端的数据类型是一个对象,即数据对象元数据里面的Classifier类。CFM类中“是否为归并”属性是一个布尔数据类型,该属性逻辑若成立(归并)则映射规则为多列端到单列端,若不成立(拆分)则映射规则为单列端到多列端。这一部分元数据模型对应于CWM标准中的转换包。
在ETL执行过程中,有时需要查看ETL整个活动的执行是否正确,在这里将“TS优先级”作为ETL执行记录的一个属性。这一部分元数据对应于CWM标准中的仓库操作包。
图4用节点来代替各部分元数据中的类,用节点间的联系来表达三部分的集成逻辑关系。
(1)数据对象元数据与ETL过程元数据之间的关联发生在映射关系上。转换映射包中的CM(ClassifierMap)类的源表与目标表都是从关系型包中的Table类中而来,转换映射包中的FM(FeatureMap)类的源字段和目标字段来源于关系型包中的Column类。而转换映射包中的CFM类的列集与列则分别来自于关系型包中的QCS类和Column类。
(2)ETL过程元数据与ETL执行记录之间的关联。在TE表中,详细记录了每次ETL操作的执行情况,包括ETL活动编号、步骤编号、优先级、是否正在执行以及是否执行成功等。以转换活动类的TA编号属性与转换步骤类的TS编号从而使得TE与ETL过程模式元数据之间的关联性。
通过以上UML模型,可以得出实施元数据库的通用策略。每个类对应一个元数据表,相关的类间具有特定的联系,从而建立起面向ETL过程的元数据描述体系。
系统的构建从实施ETL元数据库模型开始,搭建描述某数据仓库ETL过程的系统架构 [ 12]。但在具体实施时需结合具体情况分析,因它的属性往往还涉及到所用数据的粒度属性。如在电信部门,数据一般是按照某一月份和某本地网编号聚集,因此在ETL执行情况记录表里面必须加上这两个属性,以明确ETL实例执行情况所代表的时期和地方。
根据整个系统涉及到的数据,该系统结构依照ETL活动层——ETL元数据库层——ETL元数据系统分析功能层三层模式来构造。内部结构按照元数据库功能来划分,包括元数据库操作区和分析区。其中分析区包括ETL任务调度分析、主题性数据的数据流向图展示、数据问题溯源分析等,依照ETL的元数据库还可以进行更多的功能扩充,以便对数据仓库ETL过程进行多方位的管理。具体结构如 图5所示:
笔者根据某地区电信部门的集团上传任务中的“增值业务月数据分析”来设计文档和相关的源表、维表数据。按照上述模型建立元数据库,并录入相关“增值业务月数据分析”元数据,为每种元数据都赋予对应的业务描述。本文认为录入ETL元数据的执行者应该为ETL的设计人员。执行的步骤如下:
建立起模型对应的元数据库,一共8张表。分别是查询集表Query_ColSet、TA活动表Trans_Activity、TS步骤表Trans_Step、CM映射表Classifier_Map、FM映射表Feature_Map、CFM映射表Classifier_Feature_Map、TE执行记录表Trans_Execution以及更改预警记录表Modi_Metadata_Alarm_Info。
录入与该ETL整个活动有关的元数据,设置其编号为“TA001”,录入情况如 图6所示:
录入该ETL活动所包含的ETL步骤,按前面的描述该ETL活动共包含4个ETL步骤。录入情况如 图7所示:
ETL活动的Trans_Step表新增了一个字段,OBJECT_ID。这个字段表示ETL步骤与数据库中的存储过程的对应关系。另外,ETL_S2与ETL_S3是同时进行的,所以它们的优先级是一样的,是该ETL活动中的第二个步骤。
录入每个步骤中表与表之间的具体映射过程描述。该描述存储在Classifier_Map表里。录入情况如 图8所示:
可以看出每个ETL步骤中源表与目标表之间的对应关系。在ETL_S1步骤中,目标表是由三张源表整合得来;在ETL_S2和ETL_S3中,它们的目标表是相同的,并且从TM_ID字段中可以看出它们有一个源表F_2_JTSC_SERV_M的变换也是相同的,即TM04。
对于每个TM(Transformation Map)变换来说,它是字段级的多个映射关系的集合,这种映射关系可以是单字段与单字段间的FM(Feature Map)映射,也可以是单字段与多字段间的CFM(Classifier Feature Map)映射。同时,模型在这里得到扩展,增加维表映射关系。表中增加了D_QCS_ID\D_FEATURE_SOURCE与D_FEATURE_TARGET三个字段,分别表示维表的查询记录集编号、维表的源映射字段和目标映射字段。其中,查询记录集代表这样一类数据集合,它们没有被命名,属于表数据的一部分。查询记录集通过对表加入一定限制条件得到。以TM02变换为例,它在FM表、CFM表中的变化如 图9、 图10所示:
图10 列集-字段映射元数据录入情况 |
可以看到,以上包含维表信息的元数据描述是白盒映射。比起只描述源字段和目标字段的黑盒映射来说,它能够更清楚地表示出字段的转换关系,从而为数据溯源分析提供可靠保障。
此外,查询记录集的录入情况如 图11所示:
图11 列集元数据录入情况 |
在查询记录集里面,包含有记录集来源表、限制条件和条件描述等信息。在限制条件里面,select开头的可以看作是列限制条件,where开头的可以看作是行限制条件。这个限制条件字段可以改进成更加细化的描述,比如细化为两个字段,一个字段记录行限制条件,另一个字段记录列限制条件。但在该ETL案例中,因不涉及到行限制,因此没必要作此改进。该ETL活动中使用到查询记录集的情况有两种:作为FCM映射中的多列端;维表中映射所需的字段列。
记录ETL活动实例执行操作的TE(Trans_Execution)表的数据录入情况与其他ETL元数据的录入情况有所不同。由于它是记录ETL程序执行情况的,所以它的触发事件就是ETL程序的执行。因此,可在每个ETL程序中的开头添加向TE表插入实例记录的操作,在每个ETL程序末尾添加更新TE表对应实例记录的操作,以确保每次执行的情况都能全面地记录下来。
ETL过程是关系型数据进行整合、变换和聚集的过程,而基于CWM标准的ETL元数据模型很好地描述了这个过程的进行,为其建立了一个变换细节可追溯的流程框架,从而在一定程序上能够预防和解决因人员业务交流、管理体制以及数据处理机制上的不足诱发的数据质量问题。这个元数据库模型不仅可应用在数据仓库领域,在众多IT系统领域的数据变换过程中同样可以得到充分的应用。而元数据对数据变换的业务逻辑和转换方式的描述功能方面上还有很多可利用的地方也值得研究。
由于CWM元数据模型标准是一个比较宏观的建模策略,因此该模型每个类中的属性会因具体应用环境的不同而不同,因此在设计实际的系统时需要按照具体的情况来增删具体的属性。
[1] | 曹志伟. 支持ETL进化的元数据管理与应用[D]. 北京: 对外经济贸易大学, 2006. [本文引用:1] |
[2] | 胡细平. 全过程元数据驱动的实时BI基础平台研究[J]. 图书馆学研究, 2010(22): 10-16. [本文引用:1] |
[3] | 赵晓非. ETL工具的元数据集成与管理研究[J]. 武汉理工大学学报, 2010, 32(16): 115-118. [本文引用:1] |
[4] | 高晓东, 汪恒杰, 胡大斌. 基于CWM的多数据源协同平台设计与实现[J]. 控制工程, 2006, 13(5): 485-487. [本文引用:1] |
[5] | 郑洪源, 周良. 基于CWM的标准ETL的设计与实现[J]. 吉林大学学报: 信息科学版, 2006, 24(1): 50-54. [本文引用:1] |
[6] | 雷启明. 基于CWM的商场数据仓库ETL系统架构研究[J]. 商场现代化, 2008(26): 39-40. [本文引用:1] |
[7] | 程跟上, 郑洪源, 丁秋林. 一种标准的ETL的设计思想及其实现[J]. 计算机应用研究, 2005, 22(3): 101-103. [本文引用:1] |
[8] | Poole J, Chang D, Tollert D, et al. Common Warehouse Metamodel Developer’s Guide[M]. New York: John Wiley & Sons Inc, 2003: 69-72. [本文引用:1] |
[9] | OMG(Object Management Group). Common Warehouse Metamodel (CWM) Specification. Version 1. 1[S]. Object Management Group, Inc. , Needham, MA, March2003. [本文引用:1] |
[10] | 程跟上. 基于公共仓库模型的ETL系统研究与实现[D]. 南京: 南京航空航天大学, 2005: 18-19. [本文引用:1] |
[11] | Mazón J N, Trujillo J. An MDA Approach for the Development of Data Warehuses[J]. Decision Support Systems , 2008, 45(1): 41-58. [本文引用:1] [JCR: 2.201] |
[12] | 刘丽娟. 基于CWM的ETL元数据管理系统研究与实现[D]. 西安: 西北大学, 2008. [本文引用:1] |