数据仓库元数据如何管理?

underdog13


很多朋友都是第一次听说元数据管理系统这个名词,当然,从事非数据仓库工作的人,很少会接触到这个系统

元数据管理是整个数据仓库架构中很重要的一块(关于数据仓库的架构,请参考这篇文章——数据仓库的基本架构),但发其实现很多书里面都没有对元数据下一个详细的定义,或者没有系统地介绍到底数据仓库的元数据应该包括哪些。下面是整理一些对元数据管理的看法,主要来自Inmon的《数据仓库》的两本书、Oracle的文档及个人在数据仓库的应用中认为应该记录的一些元数据。

元数据的定义

  元数据(Meta Data),从字面来看好像无法看出所以然,我当初看到的时候也是,但其实看看对应的英文,含义还是挺明确的,Meta一般是指“对……的解释或描述”,类似的还有Meta Tag。所以元数据其实就是对数据的解释和描述,这种解释可以以多种形式存在,数据库的数据字典、外部文档,工具的资料档案库(Repository)等。

元数据包括哪些

  这里主要将数据仓库的元数据分为3类:数据库管理系统的数据字典、ETL处理流程产生的日志、BI建模和分析中工具或文档中记录的信息。

DBMS数据字典

  数据库管理系统(DBMS)中的元数据一般在所有的数据仓库都会包含,因为数据仓库一般都是基于数据库搭建的,而数据库本身的管理系统就会自动维护一套数据字典供用户查询。这些信息一般包括:

  • 数据库的关系模型,包含的对象及对象的描述;
  • 数据库的表结构、字段信息及描述;
  • 表和字段中的主外键、索引、约束等信息;
  • 各对象的存储位置和操作权限等。

ETL处理日志

  ETL是数据仓库管理和维护的基础,就像是数据仓库的血液维系着整个数据的新陈代谢。我们需要时刻关注血液的循环是否正常,它是保证数据完整性、一致性、准确性和及时性的重要参考依据,所以我们需要记录ETL任务的处理日志,我一般会记录以下几类信息:

  • 任务信息、调用的程序或脚本、前置任务;
  • 数据来源、加载目标、转化规则或计算公式;
  • 数据的刷新类型、刷新频率,任务调度信息;
  • 每次运行的起始时间、结束时间、操作记录数、任务状态及出错信息。

  记录ETL信息的方式有很多,一般我会将上面罗列的信息分两类进行记录,一类是ETL基本信息与调度信息,另一类是ETL的每次运行日志。其实ETL的任务信息和任务调度一般比较简单且更新频率不高,可以以文档或建数据库表的形式记录,当有新的ETL任务配置进去时进行手动更新;而ETL的运行日志一般是当任务运行一次就会记录一条,反映该次运行的状态,所以一般每个程序或脚本每天甚至每小时就会产生一条,建议如果ETL环境在数据库里面的话,建立ETL日志表记录相对会比较方便,当每次ETL运行时自动地去维护这张表,INSERT一条任务运行的记录。

BI分析模型

  这里的BI分析模型主要有两类,一类是数据仓库常见的多维模型,另一类是根据具体业务构建的商业分析模型。无论是哪类模型,其实都已经在分析的层面上,所以都有必要记录以下几类信息:

  • 分析模型的设计和结构;
  • 模型的分析应用和商业价值;
  • 模型中指标的定义、计算方法;
  • 模型的展现和效果。

  模型一般由分析师设计和构建,所以这类信息一般会以文档的形式记录下面,或者制作成相应的PPT进行展示。这里必须注意的是分析模型在构建之初就必须明确应用的环境、体现的价值或可能实现的预期,明确这些是为了更好地应用到实践中,如果只是单纯为了实现这样的模型或者基于相应算法的实现,那么很有可能最终模型会变成一种摆设;再有一点就是模型的展现,模型需要优化其在可视化层面的效果,也就是要让其他人能够更好地理解模型的使用和价值

,一切底层的算法和数据的处理只是为了让模型在最终的展现上更加有效。

  上面只是对于所有的分析模型而言,对于多维模型,其在数据仓库的应用已经形成了一定的规范,所以我们可以获取到更多的信息:

  • 多维模型的结构(星形、雪花等);
  • 多维模型的维(层次、级别、属性)和立方(度量、计算度量);
  • 多维模型的数据组织和加载;
  • 可以实现的OLAP应用与展现。

  其实如果你用工具来构建多维模型,那么这些多维模型的元数据信息可能很多直接就会保存在工具相应的资料档案库(Repository)里面,当然你也可以自己整理出相应的文档,供不时的查询和分享的需要。

元数据管理标准

没有规矩不成方圆。元数据管理之所以困难,一个很重要的原因就是缺乏统一的标准。在这种情况下,各公司的元数据管理解决方案各不相同。近几年,随着元数据联盟MDC(Meta Data Coalition)的开放信息模型OIM(Open Information Model)和OMG组织的公共仓库模型CWM(Common Warehouse Model)标准的逐渐完善,以及MDC和OMG组织的合并,为数据仓库厂商提供了统一的标准,从而为元数据管理铺平了道路。

元数据管理主要有两种方法:

  • 对于相对简单的环境,按照通用的元数据管理标准建立一个集中式的元数据知识库。
  • 对于比较复杂的环境,分别建立各部分的元数据管理系统,形成分布式元数据知识库,然后,通过建立标准的元数据交换格式,实现元数据的集成管理。

目前OMG家的CWM(Common Warehouse MetaModel)标准已成为元数据管理界的统一标准:OMG是一个拥有500多会员的国际标准化组织,著名的CORBA标准即出自该组织。公共仓库元模型(Common Warehouse Metamodel)的主要目的是在异构环境下,帮助不同的数据仓库工具、平台和元数据知识库进行元数据交换。2001年3月,OMG颁布了CWM 1.0标准。CWM模型既包括元数据存储,也包括元数据交换,它是基于以下三个工业标准制定的:

  • UML:它对CWM模型进行建模。
  • MOF(元对象设施):它是OMG元模型和元数据的存储标准,提供在异构环境下对元数据知识库的访问接口。
  • XMI(XML元数据交换):它可以使元数据以XML文件流的方式进行交换。

CWM为数据仓库和商业智能(BI)工具之间共享元数据,制定了一整套关于语法和语义的规范。它主要包含以下四个方面的规范:

  • CWM元模型(Metamodel):描述数据仓库系统的模型;
  • CWM XML:CWM元模型的XML表示;
  • CWM DTD:DW/BI共享元数据的交换格式
  • CWM IDL:DW/BI共享元数据的应用程序访问接口(API)


分享到:


相關文章: