1. 前言
在事务处理系统中的数据,主要用于记录和查询业务情况。随着数据仓库(DW)技术的不断成熟,企业的数据逐渐变成了决策的主要依据。数据仓库是一种面向决策主题、由多数据源集成、拥有当前及历史总结数据、以读为主的数据库系统,其目的是支持决策。数据仓库要根据决策的需要收集来自企业内外的有关数据,并加以适当的组织处理,使其能有效地为决策过程提供信息。数据仓库中的数据是从许多业务处理系统中抽取、转换而来,对于这样一个复杂的企业数据环境,如何以安全、高效的方式来对它们进行管理和访问就变得尤为重要。解决这一问题的关键是对元数据进行科学有效的管理。元数据是关于数据、操纵数据的进程和应用程序的结构和意义的描述信息,其主要目标是提供数据资源的全面指南。元数据不仅定义了数据仓库中数据的模式、来源以及抽取和转换规则等,而且整个数据仓库系统的运行都是基于元数据的,是元数据把数据仓库系统中的各个松散的组件联系起来,组成了一个有机的整体。
本文首先介绍了元数据的定义、作用和意义;然后讨论了数据仓库系统中元数据管理的现状和关于元数据的标准化情况;最后提出了建立元数据管理系统的步骤和实施方法。
2. 元数据
2.1 元数据的概念
按照传统的定义,元数据(Metadata)是关于数据的数据。在数据仓库系统中,元数据可以帮助数据仓库管理员和数据仓库的开发人员非常方便地找到他们所关心的数据;元数据是描述数据仓库内数据的结构和建立方法的数据,可将其按用途的不同分为两类:技术元数据(Technical Metadata)和业务元数据(Business Metadata)。
技术元数据是存储关于数据仓库系统技术细节的数据,是用于开发和管理数据仓库使用的数据,它主要包括以下信息:
数据仓库结构的描述,包括仓库模式、视图、维、层次结构和导出数据的定义,以及数据集市的位置和内容;
业务系统、数据仓库和数据集市的体系结构和模式;
汇总用的算法,包括度量和维定义算法,数据粒度、主题领域、聚集、汇总、预定义的查询与报告;
由操作环境到数据仓库环境的映射,包括源数据和它们的内容、数据分割、数据提取、清理、转换规则和数据刷新规则、安全(用户授权和存取控制)。
业务元数据从业务角度描述了数据仓库中的数据,它提供了介于使用者和实际系统之间的语义层,使得不懂计算机技术的业务人员也能够“读懂”数据仓库中的数据。业务元数据主要包括以下信息:使用者的业务术语所表达的数据模型、对象名和属性名;访问数据的原则和数据的来源;系统所提供的分析方法以及公式和报表的信息;具体包括以下信息:
企业概念模型:这是业务元数据所应提供的重要的信息,它表示企业数据模型的高层信息、整个企业的业务概念和相互关系。以这个企业模型为基础,不懂数据库技术和SQL语句的业务人员对数据仓库中的数据也能做到心中有数。
多维数据模型:这是企业概念模型的重要组成部分,它告诉业务分析人员在数据集市当中有哪些维、维的类别、数据立方体以及数据集市中的聚合规则。这里的数据立方体表示某主题领域业务事实表和维表的多维组织形式。
业务概念模型和物理数据之间的依赖:以上提到的业务元数据只是表示出了数据的业务视图,这些业务视图与实际的数据仓库或数据库、多维数据库中的表、字段、维、层次等之间的对应关系也应该在元数据知识库中有所体现。
2.2 元数据的作用
在数据仓库系统中,元数据机制主要支持以下五类系统管理功能:(1)描述哪些数据在数据仓库中;(2)定义要进入数据仓库中的数据和从数据仓库中产生的数据;(3)记录根据业务事件发生而随之进行的数据抽取工作时间安排;(4)记录并检测系统数据一致性的要求和执行情况;(5)衡量数据质量。
与其说数据仓库是软件开发项目,还不如说是系统集成项目[1],因为它的主要工作是把所需的数据仓库工具集成在一起,完成数据的抽取、转换和加载,OLAP分析和数据挖掘等。如图1所示,它的典型结构由操作环境层、数据仓库层和业务层等组成。
其中,第一层(操作环境层)是指整个企业内有关业务的OLTP系统和一些外部数据源;第二层是通过把第一层的相关数据抽取到一个中心区而组成的数据仓库层;第三层是为了完成对业务数据的分析而由各种工具组成的业务层。图中左边的部分是元数据管理,它起到了承上启下的作用,具体体现在以下几个方面:
便于集成
提高系统的灵活性
保证数据的质量
帮助用户理解数据的意义
3. 数据仓库元数据管理现状
元数据管理的主要任务有两个方面:一是负责存储和维护元数据库中的元数据;二是负责数据仓库建模工具、数据获取工具、前端工具等之间的消息传递,协调各模块和工具之间的工作。
由以上几节我们了解到元数据几乎可以被称为是数据仓库乃至商业智能(BI)系统的“灵魂”,正是由于元数据在整个数据仓库生命周期中有着重要的地位,各个厂商的数据仓库解决方案都提到了关于对元数据的管理。但遗憾的是对于元数据的管理,各个解决方案都没有明确提出一个完整的管理模式;它们提供的仅仅是对特定的局部元数据的管理。当前市场上与元数据有关的主要工具见图2。
如图2所示,与元数据相关的数据仓库工具大致可分为四类:
1. 数据抽取工具:把业务系统中的数据抽取、转换、集成到数据仓库中,如Ardent的DataStage、CA(原Platinum)的Decision Base和ETI的Extract等。这些工具仅提供了技术元数据,几乎没有提供对业务元数据的支持。
2. 前端展现工具:包括OLAP分析、报表和商业智能工具等,如MicroStrategy的DSS Agent、Cognos的PowerPlay、Business Objects的BO,以及Brio等。它们通过把关系表映射成与业务相关的事实表和维表来支持多维业务视图,进而对数据仓库中的数据进行多维分析。这些工具都提供了业务元数据与技术元数据相对应的语义层。
3. 建模工具:为非技术人员准备的业务建模工具,这些工具可以提供更高层的与特定业务相关的语义。如CA的ERwin、Sysbase的PowerDesigner以及Rational的Rose等。
4. 元数据存储工具:元数据通常存储在专用的数据库中,该数据库就如同一个“黑盒子”,外部无法知道这些工具所用到和产生的元数据是如何存储的。还有一类被称为元数据知识库(Metadata Repository)的工具,它们独立于其它工具,为元数据提供一个集中的存储空间。包括微软的Repository,CA的Repository,Ardent的MetaStage和Sybase的WCC等。
4. 元数据管理的标准化
没有规矩不成方圆。元数据管理之所以困难,一个很重要的原因就是缺乏统一的标准。在这种情况下,各公司的元数据管理解决方案各不相同。近几年,随着元数据联盟MDC(Meta Data Coalition)的开放信息模型OIM(Open Information Model)和OMG组织的公共仓库模型CWM(Common Warehouse Model)标准的逐渐完善,以及MDC和OMG组织的合并,为数据仓库厂商提供了统一的标准,从而为元数据管理铺平了道路。
从元数据的发展历史不难看出,元数据管理主要有两种方法:
(1) 对于相对简单的环境,按照通用的元数据管理标准建立一个集中式的元数据知识库。
(2) 对于比较复杂的环境,分别建立各部分的元数据管理系统,形成分布式元数据知识库,然后,通过建立标准的元数据交换格式,实现元数据的集成管理。
下面我们分别介绍数据仓库领域中两个最主要的元数据标准:MDC的OIM标准和OMG的CWM标准。
4.1 MDC的OIM存储模型
MDC成立于1995年,是一个致力于建立与厂商无关的、不依赖于具体技术的企业元数据管理标准的非赢利技术联盟,该联盟有150多个会员,其中包括微软和IBM等著名软件厂商。1999年7月MDC接受了微软的建议,将OIM作为元数据标准。
OIM的目的是通过公共的元数据信息来支持不同工具和系统之间数据的共享和重用。它涉及了信息系统(从设计到发布)的各个阶段,通过对元数据类型的标准描述来达到工具和知识库之间的数据共享。OIM所声明的元数据类型都采用统一建模语言UML(Universal Modeling Language)进行描述,并被组织成易于使用、易于扩展的多个主题范围(Subject Areas),这些主题范围包括:
分析与设计(Analysis and Design):主要用于软件分析、设计和建模。该主题范围又进一步划分为:UML包(Package)、UML扩展包、通用元素(Generic Elements)包、公共数据类型(Common Data Types)包和实体关系建模(Entity Relationship Modeling)包等。
对象与组件(Object and Component):涉及面向对象开发技术的方方面面。该主题范围只包含组件描述建模(Component Description Modeling)包。
数据库与数据仓库(Database and Warehousing):为数据库模式管理、复用和建立数据仓库提供元数据概念支持。该主题范围进一步划分为:关系数据库模式(Relational Database Schema)包、OLAP模式(OLAP Schema)包、数据转换(Data Transformations)包、面向记录的数据库模式(Record-Oriented Database Schema)包、XML模式(XML Schema)包和报表定义(Report Definitions)包等。
业务工程(Business Engineering):为企业运作提供一个蓝图。该主题范围进一步划分为:业务目标(Business Goal)包、组织元素(Organizational Elements)包、业务规则(Business Rules)包、商业流程(Business Processes)包等。
知识管理(Knowledge Management):涉及企业的信息结构。该主题范围进一步划分为:知识描述(Knowledge