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