1. 前言 在事务处理系统中的数据,主要用于记录和查询业务情况。随着数据仓库(DW)技术的不断成熟,企业的数据逐渐变成了决策的主要依据。数据仓库中的数据是从许多业务处理系统中抽取、转换而来,对于这样一个复杂的企业数据环境,如何以安全、高效的方式来对它们进行管理和访问就变得尤为重要。解决这一问题的关键是对元数据进行科学有效的管理。 2. 元数据 按照传统的定义,元数据(Metadata)是关于数据的数据。在数据仓库系统中,元数据可以帮助数据仓库管理员和数据仓库的开发人员非常方便地找到他们所关心的数据;元数据是描述数据仓库内数据的结构和建立方法的数据,可将其按用途的不同分为两类:技术元数据(Technical Metadata)和业务元数据(Business Metadata)。 技术元数据是存储关于数据仓库系统技术细节的数据,是用于开发和管理数据仓库使用的数据,它主要包括以下信息:
业务概念模型和物理数据之间的依赖:以上提到的业务元数据只是表示出了数据的业务视图,这些业务视图与实际的数据仓库或数据库、多维数据库中的表、字段、维、层次等之间的对应关系也应该在元数据知识库中有所体现。 3. 元数据的作用 (1) 元数据是进行数据集成所必需的 数据仓库最大的特点就是它的集成性。这一特点不仅体现在它所包含的数据上,还体现在实施数据仓库项目的过程当中。一方面,从各个数据源中抽取的数据要按照一定的模式存入数据仓库中,这些数据源与数据仓库中数据的对应关系及转换规则都要存储在元数据知识库中;另一方面,在数据仓库项目实施过程中,直接建立数据仓库往往费时、费力,因此在实践当中,人们可能会按照统一的数据模型,首先建设数据集市,然后在各个数据集市的基础上再建设数据仓库。不过,当数据集市数量增多时很容易形成“蜘蛛网”现象,而元数据管理是解决“蜘蛛网”的关键。如果在建立数据集市的过程中,注意了元数据管理,在集成到数据仓库中时就会比较顺利;相反,如果在建设数据集市的过程中忽视了元数据管理,那么最后的集成过程就会很困难,甚至不可能实现。 (2) 元数据定义的语义层可以帮助最终用户理解数据仓库中的数据 最终用户不可能象数据仓库系统管理员或开发人员那样熟悉数据库技术,因此迫切需要有一个“翻译”,能够使他们清晰地理解数据仓库中数据的含意。元数据可以实现业务模型与数据模型之间的映射,因而可以把数据以用户需要的方式“翻译”出来,从而帮助最终用户理解和使用数据。 (3) 元数据是保证数据质量的关键 数据仓库或数据集市建立好以后,使用者在使用的时候,常常会产生对数据的怀疑。这些怀疑往往是由于底层的数据对于用户来说是不“透明”的,使用者很自然地对结果产生怀疑。而借助元数据管理系统,最终的使用者对各个数据的来龙去脉以及数据抽取和转换的规则都会很方便地得到,这样他们自然会对数据具有信心;当然也可便捷地发现数据所存在的质量问题。甚至国外有学者还在元数据模型的基础上引入质量维[6],从更高的角度上来解决这一问题。 (4) 元数据可以支持需求变化 随着信息技术的发展和企业职能的变化,企业的需求也在不断地改变。如何构造一个随着需求改变而平滑变化的软件系统,是软件工程领域中的一个重要问题。传统的信息系统往往是通过文档来适应需求变化,但是仅仅依靠文档还是远远不够的。成功的元数据管理系统可以把整个业务的工作流、数据流和信息流有效地管理起来,使得系统不依赖特定的开发人员,从而提高系统的可扩展性。 4. 元数据的标准化 关于元数据的一般标准,从内容上,大致可分为两类。一是元数据建模,是对将来元数据的组织进行规范定义,使得在元数据建模的标准制定之后产生的元数据都以一致的方式组织,从而保证元数据管理的一致性和简单性。二是元数据交互,是对已有的元数据组织方式以及相互间交互格式加以规范定义,从而实现不同系统元数据的交互。目前,主要有以下组织定义了元数据相关的规范。 (1) 对象管理组织OMG OMG在1995年采用了MOF(Meta Object Facility),并不断完善之。1997年采用了UML,2000年,OMG又采用了CWM。这三个标准:UML、MOF和CWM形成了OMG建模和元数据管理、交换结构的基础,推动了元数据标准化的快速发展。 (2) 元数据联合会MDC MDC建于1995年,目的是提供标准化的元数据交互。MDC于1996年开发了MDIS(Meta Data Interchange Specification)并完成了MDC-OIM的技术评审,MDC-OIM基于微软的开放信息模型OIM,是一个独立于技术的、以厂商为核心的信息模型。OIM是微软的元数据管理产品Microsoft Repository的一部分。由微软和其它20多家公司共同开发的,作为微软开放过程的一部分,经过了300多个公司的评审。 为了推动元数据标准化的发展,MDC和OMG在元数据标准的制定上协同工作。1999年4月,MDC成为OMG的成员,而OMG也同时成为MDC的成员。MDC中使用了OMG的UML,而MDC-OIM中的数据仓库部分被用来作为OMG的公共仓库元数据交互(CWMI:Common Warehouse Metadata Interchange)的设计参考。在两个组织的技术力量的合作努力下,元数据标准将逐步一致化。公共仓库元模型(CWM)是为数据仓库和业务分析环境之间方便地交换元数据而制定的一个标准,已经成为模型驱动体系结构(MDA)新策略方向中的核心组成部分。下面我们讲重点讲述CWMI机器在数据仓库中的应用。 5. CWM提出的背景
现在有很多数据仓库产品,它们对元数据都有自己的定义和格式,因此创建、管理和共享元数据很耗时而且容易出错。要解决上面这些问题,必须用标准的语言描述数据仓库元数据的结构和语义,并提供标准的元数据交换机制。CWM就是满足这些条件的一个规范。OMG在2000年发布了CWM规范,旨在推动数据仓库、智能商务和知识管理方面元数据的共享和交换。和OMG合作提出CWM规范的公司有:IBM,Unisys,NCR,Hyperion Solutions,Oracle,UBS AG,Genesis Development,Dimension EDI。还有一些公司明确表示支持CWM,包括:Deere & Company,Sun,HP,Data Access Technologies,InLine Software,Aonix,Hitachi, Ltd。 6. OMG组织的CWM模型 CWM完整地描述了数据仓库元数据交换的语法和语义以及用于异质平台之间的元数据交换机制,OMG元数据知识库体系结构如图1所示。
图1 OMG的元数据仓储体系结构 CWM为数据仓库和商业智能(BI)工具之间共享元数据,制定了一整套关于语法和语义的规范。它主要包含以下四个方面的规范: (1) CWM元模型(Metamodel):描述数据仓库系统的模型; (2) CWM XML:CWM元模型的XML表示; (3) CWM DTD:DW/BI共享元数据的交换格式 (4) CWM IDL:DW/BI共享元数据的应用程序访问接口(API) 下面重点讨论CWM元模型的组成,它与OIM规范一样,也是由很多包组成的。组成CWM元模型的包结构如图2所示。
图2 CWM元模型的包结构 如图中所示,CWM元模型主要包括四层:基础包Foundation,资源包Resource,分析包Analysis和管理包Management。 基础包主要定义了为CWM其它包所共享的一些基本概念和结构,它包含的子包有:
资源包主要定义了一些描述常用的数据源/目标的元模型,它包含的子包有:
分析包主要定义了一些描述数据仓库工具的元模型,它包含的子包有:
管理包主要定义了一些描述数据仓库运行和调度信息的元模型,它包含的子包有:
7. CWM的特点 通过对CWM组成结构的介绍,可以看出CWM具有以下特点:
8. CWM的应用 CWM主要面向以下几类用户:
例如,在企业数据仓库体系结构中,ETL组件是构建数据仓库一个非常重要的部分,它将数据从外部系统提取出来,排除噪声,去掉冗余,并进行转换、聚集、重构,以利于用户使用和理解的方式存储到数据仓库中,其主要目的有两个:改进数据仓库中数据的质量和提高数据的可用性。ETL过程的工作量比较大,可以占到数据仓库开发工作的80%左右,其过程设计和执行情况直接影响到数据仓库中数据的质量和用户的使用,所以应该予以足够的重视。ETL过程主要包括以下一些步骤:
ETL的实现可以有两种方法,一是使用专用的数据转换工具,二是通过手工编制程序完成。考虑到时间的许可范围、预算、系统规模以及技术可行性等方面的因素,对于规模小、实际宽裕、编程技巧高的项目可以采用手工转换的方式。而对于规模大、时间紧、技术成熟的项目可以考虑使用专用的抽取转换工具完成,或者采用二者结合的方式。 ETL组件的CWM元模型主要定义了以下三组类:黑盒变换、白盒变换和变换的执行顺序。黑盒变换元模型在比较粗的粒度上(也就是数据源的级别)描述变换,包括以下一些类和接口:
白盒变换在比较细的粒度上描述变换(也就是数据源的属性的级别),主要包括以下一些类和接口:
变换的执行顺序控制主要包括以下一些类和接口:
9. 元数据管理系统的设计原则 数据仓库环境下的元数据管理系统的建设是十分困难的。但是在实际项目的实施过程中,这个环节又是非常重要的。当前情况下,我们认为OMG组织的CWM标准将会成为数据仓库元数据领域事实上的标准,在元数据管理系统的建立过程中应尽量参考这个标准,这样使系统的可扩展性增强。可是在与之相关的工具成熟之前,我们完全可以采用OIM中的元模型(因CWM对OIM是兼容的)以及支持它的元数据管理工具进行元数据管理系统的建设,而且元数据所包含的范围很广。我们在建立元数据管理系统的时候,绝对不能盲目追求大而全,要坚持目标驱动的原则,在实施的时候要采取增量式、渐进式的建设原则。具体的建设步骤如下: (1)如果是在建设数据仓库系统的初期,那么首先要确定系统的边界范围,系统范围确定的原则是首先保障重点,不求大,只求精。 (2)系统边界确定以后,把现有系统的元数据整理出来,加入语义层的对应。然后存到一个数据库中,这个数据库可以采用专用的元数据知识库,也可以采用一般的关系型数据库。 (3)确定元数据管理的范围。比如,我们只想通过元数据来管理数据仓库中数据的转换过程,以及有关数据的抽取路线(参见第8点中的例子),以使数据仓库开发和使用人员明白仓库中数据的整个历史过程。 (4)确定元数据管理的工具,采用一定的工具可以完成相应的工作。当前相关工具有微软的Repositry,它带有相应的编程接口,可以借助于它来完成元模型出入库的功能;与之相似的还有Platinum的OEE;另外还有Sybase的Wcc,它可以通过MDC以前的一个老标准――MDIS来集成抽取工具与转换工具,在一个窗口中就可以表示数据抽取与转换,并且可以把语义层以MDIS的格式导出到一个前端工具当中(比如Cognos的Improptu) 总之,建立元数据管理系统一定要坚持关注标准,又不被标准所束缚的原则,建立符合自身目标的元数据管理系统。 |
|