分类:
2008-04-14 13:07:26
来源:51cto 作者:sziewa |
介绍
公司和用户需要有分析大量的数据集的能力,以及能够访问和报告更详细的数据。象DB2 UDB这样的高可升级性的数据库服务器扮演一个越来越重要的角色,传送企业OLAP解决方案。 使用DB2 Cube View,DB2 UDB提供一个更加强健的基础结构,能够在端对端的的数据仓库和业务智能配置中承担起大量数据的处理。
对于许多OLAP工具和应用程序,与DB2 Cube View整合需要构建一个元数据桥。 这个桥可以使用DB2 Cube View的基于XML的存储过程接口读取或者创建元数据。 我们在本文中将讲述如何使用这个接口去构建一个桥。
DB2 Cube View的概述
IBM DB2 Cube View是增强DB2 UDB作为开发和配置业务智能产品和应用程序的DB2通用数据库的一个附加特性。 尤其是,DB2 Cube View有助于加快基于DB2 UDB的OLAP解决方案和应用程序的开发和管理。
DB2 Cube View特性是如何做到这些的? 首先,它允许DB2 UDB是了解OLAP的。 不用Cube View,对于一个不熟悉数据库结构和内容的人来说,一个关系数据库看上去可能象一大堆有栏目的表。 DB2 Cube View元数据使你能在一个DB2数据库中更加完整的建立底层结构。
通常,一个数据仓库或者数据市场是设计来用于量纲分析。 在这种情况下,数据库通常由一个或多个星形(或者雪花型)图式组织成的表组成。 一个简单的星形图式由多个维量的表围绕的一个实际表组成。 比如,一个实际的表可以记录一个公司个别产品和存货位置的销售图表。 维度表(可以名为PRODUCTS和STORES)可以包含个别产品和存货位置的细节,可以连接到实际的表中。
元数据对象
DB2 Cube View元数据尤其擅长获得一个星形图式或者雪花图式(参见图1)所固有的结构。 元数据通过一套元数据对象提供相关数据的"维度视图"。 元数据对象被分层为从Attributes这样的简单对象到更复杂的对象,比如Joins、Hierarchies、Dimensions和Cube Models。 一个完全定义的Cube Model对象通常相当于一个星形(或者雪花)图式,并且使用一个通用的维数建模一套量度数。 那么毫无疑问,Cube Model封装其它DB2 Cube View元数据对象,比如Dimensions和Measures。
图1、引用一个关系星形图式的DB2 Cube View
总而言之,DB2 Cube View元数据使你能你的DB2数据库的多维管理结构和设计。除了使得DB2感知OLAP以外,DB2 Cube View元数据至少还以两种方法使用:
· DB2 Cube View特性利用元数据最优化在DB2数据库中的SQL查询。
· 基于DB2 UDB的Products和应用程序可以使用元数据。
让我们简要地讨论这两种用法。
使用DB2 Cube View元数据用于最优化
DB2 Cube View可以通过创建相应的保持前集合体数据的物化查询表或者MQT加速SQL查询。MQT也被称为摘要表。 DB2优化程序可以根据情况重写到MQT的SQL查询(参见图2)。MQT通常在数量级上比底层的基本表小。这样,查询可以被重写,能够比运行在基本表上的SQL查询要快很多。.
DB2 Cube View有一个最优化顾问,基于元数据和用户输入,建议一套相应的MQT。请参阅DB2 Cube Views Setup and User 's Guide关于最优化的章节,获取更详细的信息。
图2、DB2优化程序在适当的时候编写到MQT的查询
元数据使用者
Cube View元数据还有其它的优点。 业务智能工具可以从DB2 UDB中读取元数据,来了解DB2表的维度结构。基于元数据,这些工具然后可以提供针对DB2 UDB数据的查询和报告解决方案解决方案。
使用DB2 Cube View元数据的工具和应用程序通常分成两类:
· 第一类应用程序"直接固定"到DB2 Cube View上。它们读取元数据并直接使用它来分析DB2数据库,通常通过使用元数据构建SQL查询。最常见的情况是,这些工具查询和报告DB2 Cube View Cube模型和Cube对象。
· 第二类工具把Cube View元数据从DB2传到它们自己的工具,然后基于它们的元数据查询DB2。这些工具必须把DB2 Cube View元数据映射为它们自己的元数据。映射的复杂性取决于元数据的类似性。
元数据生产者
注意并非所有对DB2 Cube View元数据感兴趣的应用程序都要读取它。另一类工具和应用程序产生元数据并把它推进DB2。维度元数据常常在数据库设计、提取-转换-载入(ETL)及其他数据库管理工具中产生。 通过把维度元数据传送到DB2 UDB,这些工具可以利用早先提到的最优化和管理等优点。
显然,工具和应用程序需要一个与DB2中的Cube View元数据交互的方法,以便读取、创建、修改和删除元数据对象。DB2 Cube View提供一个API,用于进行这些操作。
应用程序接口概述-DB2info.md_message()
DB2 Cube View应用程序接口是一个用于访问维度元数据的接口。它作为一个DB2存储过程被实现,名为db2info.md_message(),传送XML文档进出它所有的参数。一个存储过程的优点就在于应用程序接口成为中性语言。任何能够与DB2会话的程序设计语言都可以调用这个存储过程。你可以通过ODBC或者JDBC等等使用嵌入式SQL、动态SQL。
在DB2 Cube View Setup and User ' s Guide一书的附录里有这个API的详尽的描述。在本文中,我们将介绍几个例子。
输入参数
存储过程有下面的语法:
所有的参数是CLOB类型。
存储过程有两个输入参数。第一个是必需的,指定调用程序想执行什么操作。这个操作是:
DESCRIBE
CREATE
ALTER
RENAME
DROP
IMPORT
VALIDATE
某些操作(像CREATE和IMPORT)要求元数据通过第二个参数被传入存储过程。一个操作DESCRIBE通过第二个参数返回元数据。
输出参数
存储过程的第三个参数是一个输出参数。对于每个到这个存储过程的调用,都会通过第三个参数返回一个响应文档。然而,如果出现某些严重错误,那么没有输出响应文档被创建。 |