分类:
2008-04-12 09:49:55
来源:IBM developerWorks 中国网站 作者:Jason Dere |
简介 DB2 Cube Views 是 DB2 Universal Database™(DB2 UDB)的一种附加特性,它为 DB2 UDB 提供了 OLAP 感知能力。数据仓库一般表示为一组表,它要求最终用户知道哪些表和列是相关的以及如何将表联结在一起。DB2 Cube Views 能够将数据仓库的表描述为 OLAP 对象。使用 DB2 Cube Views,应用程序可以将数据仓库表示为具有维和度量的多维数据集。最终用户使用这种方式更容易对数据进行概念化和查看。 对于允许用户查询 DB2 Cube Views 中定义的多维数据集和多维数据集模型的应用程序,需要能够根据 DB2 Cube Views 元数据生成针对数据仓库表的 SQL 查询。可以根据多维数据集模型或多维数据集对象构造 SQL 查询来获得 OLAP 数据。为了使解释更简单,本文描述如何根据多维数据集模型和与多维数据集模型相关的对象(比如事实、维、层次结构和级)生成 SQL 查询。这些说明也可以应用于基于多维数据集和多维数据集相关对象的查询。这些对象引用多维数据集模型中使用的事实、维、层次结构和级对象,它们与多维数据集模型中的这些对象是相似的。但是,它们不包含生成 SQL 查询所需的某些信息,比如联结。因此,在根据多维数据集生成 SQL 查询时,还需要从多维数据集获得多维数据集模型信息,从而获得联结和其他无法从多维数据集相关对象中找到的信息。 按照基本规则和 DB2 Cube Views 元数据定义的多维数据集模型完整性规则,查询的多维数据集模型应该是有效的。本文假设多维数据集模型的维具有平衡的层次结构和标准部署。 对多维查询的分析 生成针对数据仓库表的查询所需的大多数信息存储在多维数据集模型相关对象中。多维数据集模型可以看作星形联结或雪花形联结模式的抽象。它由一个事实对象(代表事实表)和一组维对象(代表维表)组成。事实对象和维对象都可以看作一组相互联结的表。维对象或事实对象的属性是组成维对象或事实对象的联结表上的列或列表达式。与属性相似,度量是组成事实对象的表上的列或列表达式。度量还有一个应用于列或列表达式的聚合函数。然后使用多维数据集模型对象中的联结对象将事实表与每个维对象的表联结起来。 一个查询通常由一个或多个度量组成,这些度量是来自用户感兴趣的事实表的度量实体。 OLAP 查询通常将事实表的许多行聚合成一个相对少量的汇总结果。汇总的数量取决于查询访问的多维数据集模型切片。一个切片包含来自多维数据集模型的每个维的层次结构的一个级。如果查询访问的细节级比事实表中存储的细节级高,那么来自事实表的数据会聚合到正确的细节级。 清单 1 给出了一个基于多维数据集模型的 SQL 查询示例,并展示了 SQL 语句的各个部分如何映射到多维数据集模型中的元素: |