构建 OLAP 11g 多维数据集

目的

在本教程中,您将使用 Analytic Workspace Manager 11g (AWM 11g) 工具来构建 OLAP 多维数据集。您将执行以下操作:

  • 创建一个多维数据集及其相关组件,包括:
    • 量度(存储和计算)
  • 将 OLAP 模型映射到源数据
  • 启用多维数据集的 MV 重写
  • 将数据加载到维和量度
  • 查看 OLAP 数据

所需时间:

大约 60 分钟

主题

本教程包括下列主题:

 概述
 情景
 前提条件
 创建分析工作区
 定义维和级别
 定义层次
 定义和查看属性
 将维映射到关系源
 使用模板定义数据对象
 定义多维数据集
 创建量度
 将多维数据集映射到关系源
 启用多维数据集 MV 的查询重写(可选)
 加载和查看多维数据集数据
 更多信息

查看屏幕截图

 将鼠标置于此图标上以加载和查看本教程的所有屏幕截图。(警告:此操作会同时加载所有屏幕截图,网速较慢时,响应时间可能会比较长。)

注:此外,您还可以在下列步骤中将鼠标放在每个单独的图标上,从而仅加载和查看与该步骤相关的屏幕截图。

概述

AWM 11g 是用于在 Oracle 11g 数据仓库中创建、开发和管理多维数据的工具。借助这个易于使用的 GUI 工具,您可以创建 OLAP 数据的容器,即分析工作区 (AW),然后添加 OLAP 维和多维数据集。

在 Oracle OLAP 中,多维数据集提供了一种收集具有相似特性(包括维度、聚合规则等等)的存储量度和计算量度的简单方法。特殊的 AW 可能包含多个多维数据集,每个多维数据集可以描述一个不同的维形状。同一个 AW 中的多个多维数据集可以共享一个或多个维。因此,多维数据集只是一个帮助管理员构建和维护 AW 中数据的逻辑对象。

创建多维数据集、量度和维之后,可以将维和存储量度映射到现有星型、雪花型和标准化关系源,然后加载数据。然后可以使用简单的 SQL 查询 OLAP 数据。

返回主题列表

情景

本教程的源数据为 OLAPTRAIN 模式。OLAPTRAIN 是一个来源于基本事务处理系统的星型模式,该系统包含虚构的电子产品商店的数据。该星型模式包含“维”表,这些表描述数据中的关系,还包含“事实”表,这些表包含用来衡量性能的量度。

以下是用于分析、之前已经经过 ETL(提取、转换和加载异构数据)过程的表:

描述
CHANNELS 该表包含客户购买的分销渠道。
CUSTOMERS 该表显示购买产品的用户以及出售产品的位置(Geography 维)。
PRODUCTS 该表包含公司出售的产品。
TIMES 该表包含出售产品的时间段。
SALES_FACT 该表存储购买的金额(美元)、数量、价格、分销渠道、产品项目、日期和客户。

设计逻辑数据模型

检查关系表之后,为每个维标识可用的级别、层次以及属性。此外,作为业务要求定义过程的一部分标识所需的存储量度和计算量度。所得到的逻辑模型就成为针对 OLAP 数据模型的设计。

标识维

将源数据表用作主要输入,将以下维标识为 OLAP 数据模型的必需项:

标识级别

设计 OLAP 模型时,还需要确定要加载到您的多维数据集的汇总级别。您不一定希望将源中的数据复制为多维数据集。您始终可以通过将多维数据集联接到事实表来查询详细数据(因为所有数据都在 Oracle 数据库中)。

用于汇总管理和分析目的的业务要求应该为 OLAP 多维数据集中的每个维定义最低细节级别。您可以在任何级别将数据加载到多维数据集中。执行业务要求分析之后,每个维中的以下汇总级别已被标识为 OLAP 数据模型的一部分:

 Channel 维具有两种类型的分销渠道:Direct 和 Indirect。这两个值的子集是最低细节级别,将被分组在 Channel 级别中。按照最高汇总级别到最低细节级别的顺序,级别依次为: All Channels、ClassChannel

Geography 维反映公司如何按区域进行客户和地理分析。尽管 CUSTOMERS 维表包含以下细节级别:Region > Country > State-Province > City > Customer,但是在 OLAP 系统中进行地理分析所需的汇总级别将为(从最高级别到最低级别): All Regions、Region、CountryState-Province

 Product 维将具有六个级别。这些级别反映源数据中的相同细节级别。从最高级别到最低级别,OLAP 级别为: All Products、Department、Category、Type、SubtypeItem
 Time 维将具有四个级别(最高级别到最低级别): All Years、Calendar Year、Calendar QuarterMonth。提供 2005–2007 年的数据。

注意,在每个维中“All”(Total) 级别被添加为最高汇总级别。添加这个最高级别可以在应用程序用户分析 OLAP 数据时提供额外的灵活性。

标识层次

层次组织每个维中的级别。要标识层次,您需要按照正确的汇总顺序和支持识别的分析类型的方法对级别进行分组。可以将每个维的级别组织成任意数量的层次。

在这个 OLAP 数据模型中,一个维只需要一个层次。设计的层次级别如上表所示。

标识量度

分析要求包括存储量度和计算量度。这些量度中有两个量度可以从事实表中获得,其余量度以 OLAP 计算的形式创建和管理:

 存储量度 Sales
Quantity
 计算量度 Sales Year-to-Date
Sales Year-to-Date Prior Year
Sales Year-to-Date Prior Year % Change
Sales Prior Year % Change
Sales Prior Period
Sales Prior Period % Change
Sales Rank in Product Level
Sales Rank in Product Parent
Share of Product Sales within Parent
Share of Product Sales within Total

返回主题列表

前提条件

开始本教程之前,您应该:

1.

安装具有 OLAP 选件的 Oracle 数据库 11g(补丁级别 11.1.0.7 或更高)。

2.

OTN 下载 Analytic Workspace Manager 11g(版本 11.1.0.7A 或更高版本)并将其解压缩到 Windows 计算机上的任何目录。

3.

按照 安装 Oracle OLAP 11g 示例模式中的说明,下载和安装 OLAPTRAIN 模式。

注:示例模式安装程序包包括两个部分:

1. 安装基本的 OLAPTRAIN 模式

2. 在 OLAPTRAIN 模式中安装 SALESTRACK 分析工作区

只完成第一部分 — 安装基本的 OLAPTRAIN 模式。

4.

a. 将 olaptrain_templates.zip 下载到安装有 AWM 的计算机上的某个位置。

b. 将文件解压缩。

所得到的目录结构为: <您的路径> \templates\calcs

本教程的后面部分将在使用 ...\templates 目录和 ...\templates\calcs 目录中的文件。

返回主题列表

创建分析工作区

分析工作区是采用 OLAP DML 编写的多维数据对象和过程的容器。它是使用 AWM 工具创建的。执行以下步骤:

1.

通过双击 <您的路径>\awm\bin\awm11.1.0.7.0A.jar 或从桌面快捷方式启动 AWM 11g。

2.

右键单击 Databases 并选择 Add Database to tree

3.

在 Description 域中输入 Oracle11g,在 Connection Information 域中输入 <主机名>:1521:<SID>,然后单击 Create

4.

单击 Oracle11g 旁边的加号 (+)。

5.

输入用户名 olaptrain 和口令 oracle。然后单击 OK

6.

展开 Schemas > OLAPTRAIN。右键单击 Analytic Workspaces 并选择 Create Analytic Workspace

7.

在 Name 域中输入 SALESTRACK,然后单击 Create

8.

此时您的分析工作区就创建好了。

返回主题列表

定义维和级别

维是标识数据和对数据进行分类的唯一成员的列表。它们形成多维数据集的边缘,进一步形成多维数据集中的量度。维可以包含级别、层次和属性。可以在创建维的同时定义级别,也可以稍后定义级别。

您可以将维定义为“User”维类型,也可以定义为“Time”维类型。因为要对历史数据进行业务分析,因此完全定义的时间段很关键。对于 Time 类型的维,您的源数据必须具有针对时间段结束日期和时间跨度的列。这些必需的属性支持 OLAP 时序分析,例如,与较早的时间段进行比较。如果该信息不可用,您可以将 Time 定义成一个普通维,不过它不支持基于时间的分析。

1.

右键单击 Dimensions 文件夹并选择 Create Dimension

2.

在 Create Dimension 对话框默认的 General 选项卡中,输入 CHANNEL 作为名称,并选择 User Dimension 作为维类型。

3.

在 Levels 选项卡中,输入以下三个级别:

  • ALL_CHANNELS
  • CLASS
  • CHANNEL

注:Label 和 Description 字段将自动填写

4.

在 Implementation Details 选项卡中,选择 Use Keys from Data Source

然后单击 Create

5.

您的维及其关联的级别已经创建好了。

返回主题列表

定义层次

为了进行业务分析,通常在各种级别汇总数据。例如,您的数据库可能包含一个事务性数据库的每日快照。“日”因此是基础级别。但是,您可能按每月、每季度和每年的级别汇总该数据。

层次是一个逻辑结构,它将排序的级别用作一种组织数据的方式。它可以用来定义数据聚合;例如,在时间维中,层次可以用于将月级别的数据聚合到季度级别,然后再聚合到年级别。层次可用于定义一个导航式下钻路径,无论该层次中的级别是否代表合计总数。

维可以具有一个或多个层次。如果定义多个层次,则必须将其中一个层次定义为默认层次。

1.

右键单击 Hierarchies 文件夹,然后单击 Create Hierarchy

2.

在 Create Hierarchy 窗口中,输入 SALES_CHANNEL 作为名称。单击 Add All (>>) 工具选择所有级别,然后单击 Create

3.

新的 SALES_CHANNEL 层次作为一个项目出现在 Hierarchies 文件夹中。

返回主题列表

定义和查看属性

属性提供有关某个维的各个成员的信息。它们用来标记数据显示和选择数据。所有维都是用长描述和短描述属性创建的。时间维也具有时间跨度和结束日期属性。此外,您还可以创建自己的用户属性。

在这一部分中,您将创建一个 CHANNEL_TYPE 属性,而且还要查看刚刚创建的 CHANNEL 维的描述属性。执行以下步骤:

1.

右键单击 Attributes 文件夹,然后选择 Create Attribute

2.

在 Create Attribute 对话框中,选择或输入以下内容:

a. Name = CHANNEL_TYPE

b. Attribute Type = User

c. 在“Apply Attributes to”框中:

  • 展开 Channel 维。
  • 取消选中 Channel 维复选框。
  • 只选中 CHANNEL 级别复选框(最低级别)。

注:Channel Type 属性只应用于 Sales Channel 层次中的最低级别。

Create Attribute 对话框应该如下所示:

单击 Create

3.

展开 Attributes 文件夹查看 Channel 维属性。

4.

选择 LONG_DESCRIPTION 属性。在右侧窗格中,注意已为该层次中的所有级别定义了描述属性,与您刚刚创建的用户属性不同。

返回主题列表

将维映射到关系源


创建 OLAP 数据对象之后,将它们映射到 Oracle 数据库中的表和视图。将维表中的键列映射到 OLAP 维中的 Member 属性。此外,将维表中的适当属性列映射到关联的 OLAP 维属性。

随后,您可以使用 Maintain Analytic Workspace 向导将数据加载到分析工作区中。

1.

展开 CHANNEL 维并单击 Mappings

结果:导航窗器的右侧出现两个窗格,这两个窗格为 Schemas 窗格和 Mapping 窗格。在 Table Mapping 视图(右侧窗格)中,Source Column 字段最初为空白,如下所示:

2.

确保选择 Star Schema 作为维表类型,如上一步所示。

3.

在源模式窗格中,展开 OLAPTRAIN > Tables > CHANNELS。然后,针对 CHANNEL 和 CLASS 级别,将源列从 Schema 窗格拖动到 Mapping 窗格,如下图所示。

层次中的 ALL_CHANNELS 级别不包含源数据列。对于“All/Total”层次级别,您可以输入常量或单行 SQL 函数。对于 ALL_CHANNELS 级别,输入以下常量(对于文本值来说,单引号是必需的):

  • Member = ‘ALL_CHANNELS’
  • Description 属性 = ‘All Channels’

所得到的映射应如下所示:

注:“All/Total”值确保在该层次的顶部有一个节点,该层次将是该维的数据汇总。

4. 在映射窗格的右下角,单击 Apply

结果:Channel 维已准备好加载数据。尽管现在您可以加载维数据,但是您将在本教程的后面部分执行该步骤。

返回主题列表

使用模板定义数据对象

Analytic Workspace Manager 中的模板特性将 OLAP 数据对象的定义另存为 XML 文件。使用已保存的模板,您可以新建和现有对象完全一样的分析工作区、维、多维数据集和量度,是否使用映射均可。模板不包含数据,只包含对象定义。

模板允许您:

 与其他用户共享分析工作区设计。
 将对象定义转移到其他模式或实例。
 将对象定义保存在数据库外。
 将对象定义置于源代码控制中。

在这一部分中,您将用以前保存的模板创建三个维:GEOGRAPHY、PRODUCT 和 TIME。执行以下步骤:

1.

右键单击 Dimensions 文件夹并选择 Create Dimension From Template

2.

在 Create Dimensions From Template 对话框中,找到您在其中安装了 olaptrain 模板文件的 ...\templates 目录。

例如: c: <您的路径>\ templates

然后,在 templates 目录中选择 GEOGRAPHY.XML 并单击 Create

3.

新的 GEOGRAPHY 维出现在 Dimensions 文件夹下。展开 LevelsHierarchiesAttributes 查看其元素。

4.

要创建 PRODUCT 维,请右键单击 Dimensions 文件夹,然后选择 Create Dimension From Template,就像您以前在步骤 1 中所执行的操作一样。

5.

在 Create Dimensions From Template 对话框中,找到 PRODUCT.XML 文件并单击 Create

6.

新的 PRODUCT 维出现在 Dimensions 文件夹下。

7.

现在,通过右键单击 Dimensions 文件夹并选择 Create Dimension From Template 来创建 TIME 维。

8.

在 Create Dimensions From Template 对话框中,找到 TIME.XML 文件并单击 Create

结果:新的 TIME 维出现在 Dimensions 文件夹下。

9.

在导航器中,展开 TIME > Attributes

注意已经为 TIME 维创建了两个特殊的属性,即 END_DATE 和 TIME_SPAN。由于该维定义为“Time”类型,因此会自动创建这些属性。要启用某些 OLAP 时序分析特性,必须将这些属性映射到相应的源数据列。当您在本教程后面的部分创建时序计算时,将会利用这些属性。

10.

Geography、Product 和 Time 模板都包括映射。要查看 Time 维的映射,请在导航器中单击 TIME 下的 Mappings

与层次中其他“All/Total”级别一样,映射到常量或单行 SQL 函数。

可以通过在导航器中单击维节点下的 Mappings 选项卡来检查这些维中任何一个维的映射。

返回主题列表

定义多维数据集

在 Oracle OLAP 中,多维数据集提供了一种收集同一维度的量度的简便方法。因此,多维数据集只是一个帮助管理员构建和维护 AW 的对象。

多维数据集借助常用的特性帮助定义量度,这些特性包括:

多维数据集的边缘由其维定义。如果多个量度具有相同维度,则可以在同一多维数据集中定义它们。

 通常,共享稀疏模式和聚合规则的量度将在同一多维数据集中定义。
 同一多维数据集中的量度与其他逻辑对象具有相同关系,便于一起分析和显示。
 特殊的 AW 可能包含多个多维数据集,每个多维数据集可以描述一个不同的维形状。
 同一个 AW 中的多个多维数据集可以共享一个或多个维。

例如,可以将销售数据组织成一个多维数据集,它的边缘包含来自渠道、地理、产品和时间维的值,它的主体包含多个量度,这些量度可能包括销售额(美元)、单位销售额以及一系列基于销售额和销售数量的计算量度。

执行以下步骤创建一个多维数据集,用于组织各种销售量度:

1.

右键单击 Cubes 文件夹并单击 Create Cube

2.

在 Create Cube 窗口的 General 选项卡中,指定以下内容:

a. Name: SALES_CUBE

b. 使用 Add 工具 (>) 按照以下顺序选择维:

  • CHANNEL
  • TIME
  • GEOGRAPHY
  • PRODUCT

结果:Create Cube 窗口应该如下所示:

注:多维数据集中维的排列顺序会影响性能,这是因为排列顺序决定了数据在磁盘上的存储方式。通常,当您指定某个多维数据集的维时,多维数据集中的第一个维的维成员数最少,最后一个维的维成员数最多。在 OLAPTRAIN 模式中也一样。

3.

选择 Storage 选项卡。接受默认选项 Use compression,然后为所有维启用 Sparse 选项,如下所示:

注:

  • 什么是稀疏?如果在某个多维数据集中有大量空单元格,则认为该多维数据集“稀疏”。在维数据模型中,这是非常常见的。最为常见的情况是所有维被标记为稀疏。如果一个或多个维被标记为稀疏,则 OLAP 将为自动管理稀疏的多维数据集创建一个特殊的索引。
  • 使用 Compression 特性可大大减小多维数据集的大小并提高数据加载和查询的性能。由于大多数维数据都是稀疏的,因此选择 Compression 选项作为默认值。

4.

选择 Aggregation 选项卡。然后,在 Precompute 子选项卡中,为 Cost-based aggregation 指定值 30,如下所示:

注:

  • 基于成本的聚合 (Cost-based aggregation) 是 Oracle 11g OLAP 的新特性。如果您选择对多维数据集进行压缩,则可以使用该特性。指定一个百分比值,数据库将基于您的输入预先计算并存储成本最高的聚合值。
  • 与默认设置 20 相比,设置为 30 会导致聚合和存储更大百分比的多维数据集数据。

5.

在 Partitioning 选项卡中,选择 Partition cube 选项。(Dimension、Hierarchy 和 Level 选项处于启用状态。)

然后,选择以下设置在 Time 维上在 Year 级别指定分区:

a) Dimension = TIME

b) Hierarchy = CALENDAR

c) Level = CALENDAR_YEAR

6.

在 Create Cube 对话框的底部,单击 Create

结果:在导航器中的 Cubes 下出现 SALES_CUBE 节点。

返回主题列表

创建量度

可以在一个多维数据集中创建两种类型的量度:存储(或基础)量度和计算量度。属于某个特殊多维数据集的每个量度共享为该多维数据集定义的特性。

存储量度

基础量度存储收集的有关您业务的事实。在 OLAP 数据模型中创建基础量度时,将基础量度映射到源数据,就像您对维执行的操作一样。

计算量度

Oracle OLAP 技术的一个强大特性就是能够高效轻松地生成数据库中数据的业务计算。在任何 OLAP 实现中,计算量度的数量大大超过了存储量度的数量。

OLAP 计算量度是从基础量度或其他计算量度中派生出来的。这些计算是在用户查询数据时动态计算的。在多维数据集视图中自动将计算公开为列,非常便于用户通过非常简单的 SQL 利用丰富的分析功能。

AWM 非常便于使用图形化计算构造器定义计算量度。计算构造器包含为很多常见的业务计算类型预先定义的示例。您可以选择所需的计算类型,然后修改该示例以创建您需要的计算。

在这一部分中,您将创建两个存储量度和十个计算量度。计算量度中的三个是使用技术构造器创建的,七个是使用 XML 模板文件创建的。

1.

在导航器中,展开 SALES_CUBE。然后,右键单击 Measures 文件夹并选择 Create Measure

2.

在 Create Measure 对话框中,输入 SALES 作为名称,然后单击 Create

3.

使用步骤 1 和 2 所述的相同方法,创建第二个量度,命名为 QUANTITY

在导航器中,展开 Measures。您将看到以下内容:

4.

在导航器中,右键单击 Calculated Measures 文件夹并选择 Create Calculated Measure

5.

在 Create Calculated Measure 窗口中,输入或选择以下内容:

a) Name = SALES_YTD(Name 字段的所有内容都自动大写,Label 和 Description 字段自动填写)

b) Calculation Type = Period to Date

c) 在 Calculation 输入部分中,选择以下内容:

  • 第一个超链接 = Ancestor At Level

    结果:在 Ancestor At Level 超链接旁边出现一个超链接。

  • 第二个超链接 = TIME.CALENDAR_YEAR

结果:Create Calculated Measure 窗口现在应该如下所示:

d) 单击 Create

6.

展开 Calculated Measures 节点。结果:出现 SALES_YTD 计算。

7.

为上一年创建 YTD 计算。这样便于各年之间进行比较。

再次右键单击 Calculated Measures 文件夹,然后选择 Create Calculated Measure。在 Create Calculated Measure 窗口中,输入或选择以下内容:

a) Name = SALES_YTD_PY

b) 所有 Label 和 Description 框 = Sales Ytd Pr Year

c) Calculation Type = Parallel Period

d) 在 Calculation 输入部分中:

  • 单击 SALES 超链接(这是第二个超链接):

结果:出现 Select Measure 窗口。

  • 选择 SALES_YTD(如下所示),然后单击 OK

    结果:Calculation 更新为选择的量度。

  • 单击 TIME.CALENDAR.ALL_YEARS 超链接,然后从列表中选择 TIME.CALENDAR. CALENDAR_YEAR,如下所示:

e) 单击 Create

结果:SALES_YTD_PY 计算出现在导航器中的 Calculated Measures 节点下。

8.

创建第三个计算,该计算量度 Year-To-Date 销售中相对于上一年的百分比变化。右键单击 Calculated Measures 文件夹并选择 Create Calculated Measure

9.

在 Create Calculated Measure 窗口中,输入或选择以下内容:

a) Name = SALES_YTD_PY_PCT_CHG

b) 所有 Label 和 Description 框 = Sales Ytd Pr Yr Pct Chg

c) Calculation Type = Percent Difference From Parallel Period

d) 在 Calculation 输入部分中,单击 SALES 超链接。

e) 在 Select Measure 窗口中,选择 SALES_YTD 并单击 OK

f) 单击 TIME.CALENDAR.ALL_YEARS 超链接并从列表中选择 TIME.CALENDAR. CALENDAR_YEAR

现在,计算应该如下所示:

g) 在 Expression 域中,通过中该表达式的开头添加以下语法将等式乘以 100: 100 *

现在,该表达式应该如下所示:

注:这个附加的语法将使该计算采用整数显示百分比数字。

h) 单击 Create

结果:Sales 多维数据集现在包含以下量度:

10.

接下来,使用 XML 模板创建一个计算量度。右键单击 Calculated Measures 文件夹并选择 Create Calculated Measure from Template

11.

在 Create Calculated Measure from Template 窗口中:

a. 导航到您在其中安装了 olaptrain 模板文件的 ...\templates\calcs 目录。

例如: c: <您的路径> \templates\calcs

b. 然后,选择 SALES_PY.XML

c. 单击 Create

结果:该计算出现在导航器中。


12.

在导航器中选择新计算。

结果:Sales Prior Year 计算定义出现在右侧窗格中,如下所示:


13.

重复步骤 10 和 11 使用以下 XML 文件再创建八个计算:

  • SALES_PY_PCT_CHG.XML
  • SALES_PP.XML
  • SALES_PP_PCT_CHG.XML
  • SALES_ RANK_PROD_LVL.XML
  • SALES_ RANK_PROD_PRNT.XML
  • SALES_SHARE_PRNT_PROD.XML
  • SALES_SHARE_TOT_PROD.XML
  • HOW_IS_SALES_YTD.XML

14.

在导航器中选择 Calculated Measures 节点,以显示多维数据集中计算量度的列表。

此时您的所有量度就创建好了。

15.

在导航器中,单击 How Is Sales Ytd 计算量度以查看该计算的定义,如下所示:

注:

  • Calculation Type 为 Expression。这个特殊的计算类型允许 OLAP 数据模型开发人员通过在 Expression 框中输入适当的 OLAP 计算语法来创建自定义计算。
  • 在本例中,该语法包括一个“CASE”语句,该语句对一系列条件进行计算并返回与该条件匹配的第一个表达式。该 CASE 语句用于返回一个描述当前 Sales YTD 的绩效的文本值(与去年相比)。
  • 您将在本教程的后面部分使用该计算量度以及其他计算量度。
  • 您可以通过参加 Oracle 大学 Oracle 数据库 11g:OLAP 基础课堂教学课程了解有关创建 OLAP 计算的更多信息。有关该课程的描述,请参阅本教程结尾部分的 更多信息

返回主题列表

将多维数据集映射到关系源

创建 OLAP 多维数据集之后,将其映射到 Oracle 数据库中的关系数据源。映射多维数据集时,将适当的源数据列拖动到 OLAP 多维数据集元素的关联字段。

映射以下字段:

在多维数据集中定义的存储量度。

 每个维层次的最低细节级别。
 Join Condition 字段。该字段将事实表中的外键 (fk) 列关联到维表中的主键 (pk) 列。

随后,您可以使用 Maintain Analytic Workspace 向导将数据加载到分析工作区中。

1.

单击 SALES_CUBE 下的 Mappings 节点。

确保启用表映射视图。

2.

在源模式窗格中,展开 OLAPTRAIN > Tables

3.

找到并使用以下表:

  • SALES_FACT
  • CHANNELS
  • CUSTOMERS
  • PRODUCTS
  • TIMES

将每个源表中适当的列拖动到关联的 SALES_CUBE Source Column 字段,如下图所示。

注:当为每个维映射 Join Condition 时:

  • 首先,将事实表的外键列拖动到 Source Column 字段。
  • 然后,将维表的主键列拖动到 Source Column 字段。
  • 将第二个列拖动到 Source Column 字段中之后会自动插入等号(“=”)。

完成映射后,您的源列结果应该如下所示:

4.

单击 Apply

返回主题列表

启用多维数据集 MV 的查询重写(可选)

在 Oracle 数据库 11g 的物化视图 功能扩展中,可以将 OLAP 多维数据集表示为按多维数据集组织的物化视图(多维数据集 MV)。查询优化器自动识别何时现有多维数据集 MV 可以且应该用来满足 SQL 汇总请求。多维数据集 MV 表示一个重要的汇总空间,它的优点是便于管理且能够提高查询性能。

如果您的 OLAP 系统要求不需要对现有基于 SQL 的 BI 应用程序进行汇总管理,则可以跳过这一可选任务。

注:

如果您选择启用查询重写,则 Oracle 数据库会自动创建和管理支持的多维数据集 MV 对象。

 必须首先映射该多维数据集,然后才能为多维数据集启用物化视图。

要为您的 OLAP 多维数据集启用查询重写和 MV 刷新功能,请执行以下步骤。

1.

在导航器中,单击 SALES_CUBE

2.

在右侧窗格中,单击 Materialized Views 选项卡并选择以下选项:

  • Enable Materialized View Refresh of the Cube
  • Enable Query Rewrite

注:

MV 刷新

  • 如果您选择 Enable MV Refresh,还需要为多维数据集指定刷新方法和模式。多维数据集 MV 刷新方法包括 Complete、Force 和 Fast。
  • 默认的刷新模式是 On Demand。

查询重写

  • 如果您选择 Enable Query Rewrite,则当您单击 Apply 时,数据库会自动创建支持的多维数据集 MV 对象。
  • 当启用多维数据集的查询重写时,也会自动启用关联维的 MV 刷新。

3.

接受所有其他选项的默认设置,然后单击 Apply

结果:出现以下信息框:

该信息框关闭时,多维数据集 MV 将启用并可供物化视图子系统使用。

注:有关多维数据集 MV 的查询重写的启用以及故障排除的更多信息,请参阅本 白皮书

返回主题列表

加载和查看多维数据集数据


Maintenance Wizard 通过一个步骤对数据进行加载和聚合。您可以在分析工作区中加载所有映射的对象,或者单个维和量度。您还可以选择立即运行作业,将其输入 Oracle 作业队列中,或者将其保存为 SQL 脚本。

默认情况下,当您将数据加载到多维数据集时,该多维数据集的维也会得到处理。如果已经加载了维数据,则可以指定只加载量度数据。

采用以下步骤,加载多维数据集的所有数据并立即运行该作业。然后在 AWM 中查看该数据。

1.

在导航器中,右键单击 SALES_CUBE,然后选择 Maintain Cube SALES_CUBE

2.

在 Maintenance Wizard 中,单击 Finish 开始加载过程。

注:如果要立即构建所有多维数据集对象,则应用默认设置。

结果:出现以下信息框:

3.

构建完成后,出现 Build Log 窗口。

如果您滚动到右侧,然后在 Build Log 中向下滚动,则可以看到处理每个多维数据集分区的方式。检查完 Build Log 之后,单击 Close

注:通过单击 Reports 节点,可以从导航器中查看多个日志。

5.

可以从 AWM 中查看 OLAP 数据。

在导航器中,右键单击 SALES 量度并从菜单中选择 View Data Sales

结果:一组默认维成员的销售数据显示在交叉表和图形中。

6.

在 Data Viewer 中,展开 All Years。以下数据出现在交叉表中:

注:CY2008 为空白,因为 2008 日历年的数据未存储在关系模式中。CY2008 时间段构建在 OLAP 数据模型中,这样可以用随后的数据加载自动更新新数据。

7.

单击 File 菜单下的 Query Builder 工具。

8.

在 Items 选项卡中,执行以下操作:

a) 选择 Sales Pr YearSales Pr Year Pct Chg

b) 单击 Add Selected Items 工具 (>) 将这两个量度移动到 Selected 列表中,如下所示:

9.

单击 Layout 选项卡。在 Layout 选项卡中,将相应的维块拖动到正确的轴,使布局如下所示:

10.

单击 Dimensions 选项卡。在 Dimensions 选项卡中,执行以下操作:

a) 从 Choose 下拉列表中选择 Time 维。

b) 单击 Remove All Items 工具 (<<) 清除 Selected 列表。

c) 在 Available 列表的 Members 选项卡中,展开 All Years > CY2007

d) 选择 CY2007 中的四个季度,如下所示:

e) 单击 Add Items 工具 (>) 将 2007 年的季度移动到 Selected 列表中,如下所示:

f) 从 Choose 下拉列表中选择 Product

g) 单击 Remove All Items 工具,然后展开 Available 列表中的 All Products。最后,选择三个 Product 部门成员,如下所示:

h) 单击 Add Items 工具将部门成员移动到 Selected 列表中。

i) 单击 OK 查看数据。

11.

从 Product 维标题中选择任何一个成员。计算将立即更新。

展开任何一个 2007 Quarter 值查看月份级别的数据。

当测试完报表时,折叠 Time 维的所有展开项,以便只显示 2007 年的四个季度。

12.

接下来,为 Year-to-Date 分析报表修改 Data Viewer。

首先,通过单击 Hide/Show 工具的 向下箭头隐藏图形。

13.

然后,单击 Query Builder 工具,并在 Items 选项卡中,执行以下操作:

a) 在 Selected 列表中,选择 Sales Pr YearSales Pr Year Pct Chg

b) 单击 Remove Selected Items 工具 (<)。

c) 在 Available 列表中,选择 Sales YtdSales Ytd Pr Year Pct ChgHow Is Sales Ytd

d) 单击 Add Selected Items 工具 (>)。

结果:Year to Date 量度添加到 Selected 列表中。

14.

在 Layout 选项卡中,交换 Product 和 Time 维,以便 Product 在 Row 轴中,Time 在 Page Items 轴中,如下所示:

15.

单击 OK 查看数据。

这些计算量度显示:

  • Sales Year-To-Date 数据(在本例中,与 Sales 相同,因为选择了 Q1-CY2007)。
  • 将本期 (Q1-2007) 的 Sales YTD 和去年 (Q1-2006) 的 Sales YTD 进行比较时,百分比发生了改变。
  • 将 Sales YTD 百分比变化绩效描述为“Needs Improvement”、“On Track”或“Outstanding”的文本值。记得在该计算量度中使用了一个 CASE 条件语句来生成该结果。

16.

从 Time 维标题中,选择 Q2-CY2007,如下所示:

结果:存储数据和计算数据更新为正确的值。

17.

从 Time 维标题中,选择 Q4-CY2007

How Is Sales Ytd 量度正确反映了新查询的数据。

18.

展开 Computers

YTD 绩效量度再次自动更新以反映当前的选择。

19.

最后,为产品排名和份额报表修改 Data Viewer。

- 首先,折叠 Product 维展开项以只显示三个产品部门。

- 其次,从 Time 维标题中选择 Q1-CY2007

然后,单击 Query Builder 工具。

20.

在 Items 选项卡中,执行以下操作:

a) 在 Selected 列表中,选择 Sales YtdSales Ytd Pr Year Pct ChgHow Is Sales Ytd

b) 单击 Remove Selected Items 工具 (<)。

c) 在 Available 列表中,选择 Sales Rank In Prod PrntSales Share Prnt Prod

d) 单击 Add Selected Items 工具 (>)。

结果:排名量度和份额量度添加到 Selected 列表中。

21.

单击 OK 查看数据。

这些计算量度显示:

  • 每个 Product 维成员在其层次父级中的排名。
  • 每个产品成员的份额,以销售百分比的形式由该产品成员返回给该层次中它的父级。

22.

展开 Computers

排名量度和份额量度显示 Computer 部门中每个 Product 部门成员的相对排名和份额贡献。

23.

从 Page Items 轴中选择任何 Time 成员,计算会立即更新。

通过展开或选择其他维成员可以自由修改报表。

完成后,关闭 Measure Data Viewer。


24.

还可以借助任何基于 SQL 的工具针对 OLAP 数据执行即席、多维分析。通过一组由 Oracle OLAP 自动创建和维护的关系视图,SQL 可以直接访问 Oracle OLAP 数据。通过针对这些关联的多维数据集视图执行简单的 SQL 语句可以查询 OLAP 数据。

单击 SALES_CUBE_VIEW — 为 SALES_CUBE 创建的视图 — 显示该视图的信息和数据。

Oracle OLAP 为每个多维数据集和维创建和维护视图。这些视图将 OLAP 多维数据集表示为一个具有以下特性的星型模式:

  • 多维数据集视图扮演事实表的角色。
  • 维视图和层次视图扮演维表的角色(在 OLAP 数据模型中为每个维创建和维护一个维视图和一个层次视图)。

尽管对 OLAP 多维数据集的 SQL 访问将在另一个教程中介绍,但下面提供了针对您刚刚创建的多维数据集的一个 SQL 查询示例。

25.

在上述示例中,使用了 SQL Developer 来编写 SQL 查询。

该 SQL 语句在行内说明中进行了解释,它查询步骤 21 中 AWM 选择的相同数据。

注:Oracle 数据库免费附带 SQL Developer。

26.

执行以上查询,所得到的输出显示步骤 21 中返回的相同数据。

有关如何使用 SQL 查询 OLAP 数据的信息,请参阅 查询 OLAP 11g 多维数据集 OBE 课程。

返回主题列表

更多信息

要获得与 OLAP 有关的培训的更多信息,请使用以下链接:

 Oracle 数据库 11g:OLAP 基础(Oracle 大学课堂教学)

查询 OLAP 11g 多维数据集 (OBE)

 结合使用 Oracle OLAP 11g 和 Oracle BI 企业版 (OBE)
 基于 OLAP 11g 多维数据集创建交互式 APEX 报表 (OBE)

返回主题列表

 将鼠标置于该图标上可以隐藏所有的屏幕截图。

Left Curve
热门下载
Right Curve
Left Curve
更多融合中间件下载
Right Curve