公共仓库元模型(CWM)学习(一)

一、什么是CWM?

在我们学习一个新东西时,首先得弄懂明白它是用来干什么的?然后通过实例与理论交错学习,CWM——Common Warehouse Metamodel, 很明显翻译过来时公共仓库元模型,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。

说白了,CWM其实就是一个元数据交换的标准,为各种数据仓库产品提出的一个标准。

二、CWM组成元素?

CWM主要基于以下三个工业标准:

  • UML(Unified Modeling Language):统一建模语言,是OMG的一个建模标准;
  • MOF(Meta Object Facility):元对象工具,是OMG关于元模型和元数据库的一个标准;
  • XMI(XML Metadata Interchange),XML元数据交换,是OMG关于元数据交换的标准;

咋一看,是不是很熟悉,尤其是UML 、 XML 大家应该很明白这是干什么的吧,这三个标准是OMG元数据库体系结构的核心,UML定义了表示模型和元模型的语法和语义。MOF为构建模型和元模型提供了可扩展的框架,并提供了存取元数据的程序接口。而利用XMI则可以将元数据转换为标准的XML数据流或文件的格式,以便进行交换,这大大增强了CWM的通用性。

三、CWM元素之间的关系?

从小老师就教我们团结就是力量,如果单独的里面的某个元素出来,干的事情肯定寥寥无几,而且还不尽完美,所以明白之间的关系很重要,为了说明CWM和这三个标准之间的关系,首先介绍一下元数据的层次。传统的元数据有四个层次,除了最底层外,每一层都对它的下一层进行描述。最底层是用户对象层(M0),包括用户要描述的信息,这些信息统称为数据。向上一层是模型层(M1),由描述信息的元数据组成,在这一层,元数据一般都组合成模型的形式。再向上一层是元模型层(M2),由定义M1层元数据格式和语义的描述信息组成,也就是元元数据,一般组合成元模型的形式。最高层是元元模型层(M3),它定义了元模型的结构和语义。下面举个例子对这种四层结构进行说明。

四层的内容解释如下:

  • 数据层是学生记录(Record)的实例,即具体的某个学生;
  • 模型层描述学生这个记录类型的内容,它有一个名字(“Student”)和两个字段(Field),每个字段都有一个名字和类型,比如第一个字段的名字是“name“,字段类型是String;
  • 元模型层对Record这种类型进行定义,在这一层, Record是元类metaClass的一个实例,一个Record拥有两个元属性metaAttribute,第一个name定义它的名字,是String类型,第二个fields定义它包含的字段集,字段集中的成员是Field类型。类似的,元类field应该也包含两个元属性:名字name和类型type;
  • 元元模型层的结构是基本固定的,它将所有概念抽象为以下这些组件:元类meta-Class、元属性meta-Attribute和元关联meta-Association,并定义了元类之间的关系,主要包括:包含(Contains),继承(Generalizes),类型引用(IsOfType)和依赖(DependsOn);

理论上,还可以再向上抽象,但由于元元模型层是自描述的,所以四层就足够了。至于为什么要抽象出上面两层,则是为了支持各种不同的模型和元模型。

综上所述,可以用下面这张表来描述OMG的上述规范和元数据四层结构的对应关系:

image.png

四、 CWM的组成结构
CWM完整地描述了数据仓库元数据交换的语法和语义以及用于异质平台之间的元数据交换机制,它由三个部分组成:
1、CWM元模型
CWM元模型描述了数据仓库的组成元素,用户可以按照这些元模型开发相应的组件,比如ETL、OLAP和数据挖掘等。为了降低复杂度并达到重用,CWM元模型采用分层的方式组织它所包含的包,大家可以看看CWM元模型的包结构图:

如图中所示,CWM元模型主要包括四层:基础包Foundation,资源包Resource,分析包Analysis和管理包Management。
基础包主要定义了为CWM其它包所共享的一些基本概念和结构,它包含的子包有:
Business Information:定义了面向业务的通用信息,比如负责人信息等;
Data Types:定义了其它包用以创建自己所需的数据类型的元模型组件;
Expressions:定义了CWM其它包定义表达式树所需的元模型组件;
Keys and Indexes:定义了描述关键字和索引的共享元模型;
Software Deployment:描述一个软件在数据仓库中如何被使用的元模型;
Type Mapping:支持不同系统之间数据类型的映射的元模型;

资源包主要定义了一些描述常用的数据源/目标的元模型,它包含的子包有:
Relational:描述通过关系型接口访问的数据库的数据模型和元模型,比如RDBMS,ODBC,JDBC等;
Record:描述记录的基本概念和结构的元模型,这里记录的概念很广泛,它可以描述任何结构化的信息,比如数据库的一条记录、文档等;
Multidimensional:描述多维型数据库的元模型;
XML:描述用XML表示的数据源和数据目标;

分析包主要定义了一些描述数据仓库工具的元模型,它包含的子包有:
Transformation:定义数据仓库中抽取转换规则的元模型,它包含对各种类型数据源之间的转换规则的描述;
OLAP:对OLAP工具和应用进行描述,并定义了它到实际系统的映射;
Data Mining:对数据挖掘工具和应用进行描述;
Information Visualization:定义了问题领域中有关信息发布或者信息可视化的元模型;
Business Nomenclature:对业务数据进行描述,比如业务术语及其适用范围等;

管理包主要定义了一些描述数据仓库运行和调度信息的元模型,它包含的子包有:
Warehouse Process:描述数据仓库中抽取转换规则的执行过程,也就是各个转换规则的触发条件;
Warehouse Operation:描述数据仓库日常运行情况的元模型;

2、CWM DTD 和CWM XML CWM DTD和XML是对应于CWM中所有包的DTD和XML,它们都遵循XMI规范。定义CWM DTD和XML的主要目的是为了基于XML进行元数据交换,因为XML在各个领域的应用越来越广泛,CWM提供元模型到XML的转换,无疑大大增加了自己的通用性,各种分析工具和元数据库可以利用这些模板为自己的元模型生成DTD和XML文档,就可以和其它的工具之间进行元数据交换。

3、CWM IDL
CWM IDL为上面所有的包定义了符合MOF1.3的IDL接口,这样就可以利用CORBA进行元数据交换。用户可以创建一些具有分析功能的软件包,比如数据挖掘组件等。提供CWM中规定的IDL接口,就可以被其它支持CWM的工具和数据仓库调用,这大大增强了CWM的灵活性和适用性。

五、CWM的特点

通过对CWM组成结构的介绍,可以看出CWM具有以下特点:

Ø 对所有的数据仓库功能元数据定义了详细的元模型和交换方式,包括技术元数据(比如Software Deployment,Transformation,Warehouse Process等)和业务元数据(比如OLAP,Business Information等);

Ø 定义了一个通用且强大的Transformation包,可以表示任何数据源和数据目标之间的转换规则。此外,还为多种常用的数据源/目标(比如Relational,Record,Multidimensional,XML等)和工具相关的数据源(比如IMS,DMSII,COBOL Data,Essbase和Express等)定义了元模型和交换方式;

Ø 对所有的数据仓库运行元素定义了元模型和交换方式,包括调度、状态报告和历史记录等;

Ø 对所有的分析型数据以及主要的分析型数据模型定义了元模型和交换方式,比如多维型;

Ø 对操作型数据以及主要的操作型数据模型定义了元模型,比如关系型和面向对象型;

六、CWM的设计目标

CWM主要的设计目标和原则有以下几个方面:

Ø 对UML中概念的重用:UML 1.3 是整个CWM的设计基础,CWM在任何可能的地方对UML中的概念进行重用,所有的CWM对象类型都直接或间接地继承于UML,因此也继承了它们的属性和方法。这样可以节省很多重复工作,并且使CWM更容易理解,所有熟悉UML的用户都可以有一个比较高的起点;

Ø 模块化:CWM元模型被分成许多包,以便它们分别实现并减少复杂度。

Ø通用化:CWM元模型独立于任何具体的数据仓库工具,但同时,它尽量多地包含了基于特定工具实现的有代表性且通用的数据仓库特点。也就是说,只有那些多种工具共享的信息才会被CWM元模型包含进来;

七、CWM的应用人群

CWM主要面向以下几类用户:

Ø 数据仓库平台和工具提供商:CWM为他们提供了一个组件可插卸的通用系统框架。因为这是一种全球通用的元数据交换协议,所以他们可以很方便地在各种异质平台上发布自己的产品;

Ø 数据仓库服务提供者:可重用、可编辑、可扩展的CWM元数据大大提高了他们的工作效率。因为CWM与产品无关,所以可以避免大量的重复设计工作;

Ø 数据仓库管理员:数据仓库管理员有时需要对现有工具进行整合,而CWM XML无疑为他们提供了一种最方便的整合方式。另外,管理员经常需要对资源进行增减、分区或者重新分配,CWM提供了这方面的元数据以帮助他们完成这些工作,并对改变造成的影响作出评估;

Ø 终端用户:CWM为查询和展示工具定义了元模型,以便更方便快捷地为终端用户展示他们所需的信息;

Ø信息技术管理者:CWM为系统管理和报表工具定义了元模型,使得用户能够更轻松地对系统和信息进行管理;

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 158,233评论 4 360
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 67,013评论 1 291
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 108,030评论 0 241
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 43,827评论 0 204
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 52,221评论 3 286
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,542评论 1 216
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 31,814评论 2 312
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,513评论 0 198
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,225评论 1 241
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,497评论 2 244
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 31,998评论 1 258
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,342评论 2 253
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 32,986评论 3 235
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,055评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,812评论 0 194
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 35,560评论 2 271
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,461评论 2 266

推荐阅读更多精彩内容

  • 第八章 系统分析与设计方法 8.1 定义问题与归结模型 定义问题的过程包括:理解真实世界中的问题和用户的额需要,并...
    步积阅读 3,776评论 0 12
  • 一. Java基础部分.................................................
    wy_sure阅读 3,731评论 0 11
  • 今天气温居然又骤降到-8℃,春的气息瞬间又转入了冬的来临。 我在心里又哼起了那首歌“春天在哪里呀,春天在哪里……”...
    杨姣娜阅读 146评论 2 1
  • 能控制好自己的时间观念真的是一件很厉害的事情。记得小时候学过的一篇文章,和世界赛跑,这里面充分说明了时间的重要性。...
    贠霞阅读 776评论 1 0
  • 在现实的生活中,爱情和面包也许不可兼得。即使如此,至少要有一样是可以给你心灵的慰藉。恋爱时期眼里只有对方的好或优点...
    瑞利Lily阅读 164评论 0 0