Chinaunix首页 | 论坛 | 博客
  • 博客访问: 19269871
  • 博文数量: 7460
  • 博客积分: 10434
  • 博客等级: 上将
  • 技术积分: 78178
  • 用 户 组: 普通用户
  • 注册时间: 2008-03-02 22:54
文章分类

全部博文(7460)

文章存档

2011年(1)

2009年(669)

2008年(6790)

分类: Oracle

2008-03-21 14:54:22

清除通往 OLAP 的障碍

作者: Chris Claterbos 来源:OTN

Oracle 新的 Analytic Workspace Manager 使得管理 Oracle OLAP 时无需使用复杂的命令行编程成为可能。本文解释它是如何工作的。

中的 OLAP 选项引入了分析工作区并在同一数据库中真正集成了关系和多维数据类型。 迄今为止,开发人员和 DBA 能够使用分析工作区的唯一途径是利用命令行 API 调用来人工构建它们。 但利用 Analytic Workspace Manager (AWM) 的最新版本,您现在第一次可以更好地利用 OLAP 选项中的多维特性,而无需进行复杂的命令行编程。

本文中,我将介绍 Analytic Workspace Manager ,并逐步叙述如何创建一个存储在分析工作区中的多维数据集,该分析工作区可以通过 、 或 SQL 来查看。 我还将叙述如何添加新的量度和公式,以及如何移植现有的 Oracle Express 数据库。

什么是 Analytic Workspace Manager?

当增强 OLAP 选项以包含分析工作区时,同时提供的还有 OLAP DML — 一种命令驱动的 API 和命令语言 — 帮助 DBA 和开发人员在这种新的数据存储工具中创建、维护和处理数据和对象。 不幸的是,那时没有提供基于 GUI 的工具来辅助这些工作。 因此,需要专门的技能和知识以有效地使用该 OLAP 数据存储工具。

AWM — 用于分析工作区的创建和维护的一个图形化工具 — 为改善这种境况迈出了重大的一步。 (您可以立即从 OTN 上的 Oracle OLAP /global/cn/products/bi/olap/olap.html 页面中下载 AWM ,注意在 Oracle9 i Database Rel 2 [ 9.2.0 .4] 上必须安装 3085634 号补丁。)

AWM 提供以下基本功能:

  • 集成的图形用户界面
  • 能够使用 Oracle Enterprise Manager 或 Oracle Warehouse Builder 来创建一个关系 OLAP 多维数据集,并将其转移到一个分析工作区中
  • 能够直接通过菜单选项或通过由 AWN 生成的脚本来刷新数据、维度和事实
  • 自动创建使用 BI Bean 来访问数据所必需的 BI Bean 视图和相关的元数据
  • 使 Discoverer 能够创建允许 Discoverer 访问 OLAP 数据所必需的终端用户层信息和 OLAP 表视图
  • 创建允许通过标准 SQL 来查看分析工作区数据的 SQL OLAP 表视图。

为了说明 AWM 的优点,我们来看一个例子。最近,有一位客户花了几个星期的时间,试图创建分析工作区、多维数据集和量度,并利用 DBMS 程序包来实现 BI bean 。 他们取得了有限的成功,但不能在 BI Bean 中正确地查看数据。 在加载了 AWM 和必需的数据库补丁之后,他们能够创建一个新的 AW 、将关系数据集转移到新的 AW 中、为 BI Bean 启用数据,并在几小时的工作之后就可实际地查看它们的数据。

指导教程

现在让我们看一个 “ 指导教程 ” ,它将展示 AWM 如何使得充分利用 Oracle 的 OLAP 引擎的能力变得容易。

AWM 使用户能够使用两种视图进行工作: OLAP 目录视图和对象视图。 OLAP 目录视图允许直观地查看资料库中包含的 OLAP 目录元数据;对象视图让您能够查看和维护驻留在分析工作区中的数据。 您可以通过视图菜单在这两种视图之间切换。

显示屏包含了一个导航面板和一个显示面板。 当您在导航面板中选择了一个对象时,右边的显示面板将显示关于选中对象的信息。 您还可以右键单击导航面板中的对象;然后在带有对该对象的相应操作的菜单选项中进行选择。

一个称为 OLAP Worksheet 的工具利用 OLAP DML 在分析工作区上打开一个交互式会话。 这两个工具分享同一个会话,因此您可以在查看相同数据的同时在控制台和 OLAP Worksheet 之间切换。

OLAP 目录视图

当您首次登录 AWM 时,提供给您的是 OLAP 目录视图。 该视图列出了主要的目录对象: 量度文件夹、多维数据集和维度。 在该视图中,不允许创建或修改元数据。 要修改元数据,必须使用 Oracle Enterprise Manager 、 Oracle Warehouse Builder 或 CWM2 PL/SQL 过程。 当创建了一个分析工作区时, OLAP 目录视图显示该分析工作区中的多维数据集,以及关系型多维数据集(如果它们被启用了)。 此外,聚合计划也将被显示,并可从该视图中创建。 是一个 OLAP 目录视图,它显示了一个分析工作区中的关系型多维数据集和一个多维数据集。 游标位于关系型多维数据集 (Audio Product Sales) 上,详细信息在右边的面板中显示。

图 1

对象视图

对象视图为分析工作区中包含的对象提供了一个图形化的导航器。 与 OLAP 目录视图不同,该视图允许您在分析工作区中创建和修改对象。

显示了对象视图。 左边是对象导航面板,它被扩展来显示各种分析工作区和提供的相关对象类型,右边是将数据加载到多维数据集中的程序。 该视图使用户避免了必须实际运行 OLAP DML 命令来维护对象。

图 2

OLAP Worksheet

如果您想运行 OLAP DML 或通过使用 OLAP DML 来直接创建或修改分析工作区或对象,那么您可以从 Tools 菜单中调用 OLAP Worksheet 。 图 3 显示了以编辑模式打开的 OLAP Worksheet 。 OLAP Worksheet 用于运行 OLAP DML 命令和程序,以及显示和处理分析工作区中的对象。 OLAP Worksheet 被认为是为 OLAP 提供的 SQL Plus 。

图 3

从关系型多维数据集中创建分析工作区

利用 Create Analytic Workspace 向导,您可以从 OLAP 目录中的一个或多个多维数据集中创建一个工作区。 产生的工作区是数据库标准格式的,这在 Oracle9 i OLAP 开发人员指南的 OLAP API 部分 (参见 “ ” )中进行了说明。

Create Analytic Workspace 向导提供了适当的默认值;无需做任何决定,您就可以创建一个分析工作区。 通过接受默认设置,您可以为数据创建一个适合于多种数据类型的物理存储模型。 如果您刚接触 OLAP 类型分析,那么您可能想从创建一个具有默认设置的分析工作区开始。

然而,在产品系统中,好的性能是至关重要的。 要创建具有最佳性能的工作区,必须研究数据的特性并根据其需要相应地设置高级存储选项。 您可以使用高级存储来人工定义复合结构,以允许控制空间不足以及数据使用的存储空间。 这也可以提高数据库的性能。 例如, AWM 自动为创建的每一个多维数据集创建一个复合结构。 复合结构,如 ,假定 NODE 是变化最快的,而 PRODUCT 是变化最慢的。 如果情况并非如此,则可以构建复合结构来正确地反映实际数据。

创建一个数据库标准格式的工作区的过程如下:

  1. 为 OLAP 配置数据库实例。 定义永久、临时和撤消表空间,并将数据库参数设为适合于数据载荷的值。
  2. 定义将拥有该分析工作区的一个用户。 以一种与关系源不同的模式创建分析工作区是一种好的做法,这防止了对象名称的冲突,并允许更好地控制安全性和对数据的访问。 虽然您可以用与关系表相同的模式来创建工作区,但这么做将在单个命名空间内定义唯一的名称时带来问题。 用户将需要被授予 OLAP_DBA 角色和对源数据表的 SELECT 权限。
  3. 打开 Analytic Workspace Manager ,然后作为之前为这个目的而定义的用户与数据库实例连接。
  4. 如果您想生成日志文件,请从 Tools 菜单中选择 Configuration 。 单击 Help ,获取更多信息。
  5. 在 OLAP 目录视图中,确认您已为源数据定义了维度、层次、量度和多维数据集,以及您能够从当前的会话中访问这些逻辑对象。
  6. 从 Tools 菜单中,选择 Create Analytic Workspace Using Wizard 。 完成向导的步骤。 如果您需要定义复合结构,请确保选择了高级存储选项。 单击 Help 按钮,获取关于各个步骤的特定信息。
  7. 您可以现在或稍后为 BI Bean 启用该工作区。 您可能想推迟启用直到使用聚合数据和自定义量度增强了分析工作区之后。 如果您在构建期间遇到问题,而您已选择了启用,那么在删除启用过程创建的所有元数据时,可能会出现问题。 您可以始终在构建和加载过程成功完成之后启用工作区。
  8. 从 File 菜单中选择 Save 。 该选项将提交此会话期间对数据库所作的所有修改。
  9. 如果您选择了一个定义对象而不加载所有数据的构建选项,那么当您准备完成构建时,请运行 Refresh Analytic Workspace 向导。

现在分析工作区被创建了,您现在可以查看利用对象视图创建的对象。

添加公式

在您创建了初始的分析工作区多维数据集之后,您可能想添加允许自定义计算的公式。 这些公式可以是简单的或复杂的,但它们都由服务器自动计算。

一个公式的例子是 PROFIT ,它是从 REVENUE 中减去 COST 的结果。 通过选择 formulas->Create Formula ,然后填入名称和说明,选择维度,然后为表达式插入 REVENUE — COST ,您可以在 AWM 中定义这个公式。

不过,请记住,当使用 Create 菜单项时, AWM 现在不会自动填入标准格式的元数据。 要正确地填入元数据需要一个额外的步骤;可以人工或通过使用 OLAP DML 程序来填入元数据。

包含了一个程序,它用来使向分析工作区添加新的量度的工作变得更简单。 如果您运行了该程序,并传递了正确的参数,则适当的元数据将被正确地填入。 例如,从 OLAP Worksheet 执行

Call set_formula_measure('PROFIT','DEMO','SALES_CUBE','AWSALES','Profit','AW$CREATE')

导致 PROFIT 公式在 DEMO 模式下与 SALES_CUBE 连接。 为了验证该步骤是否得到正确执行,可以简单地利用以下命令来报告 ALL_MEASURES 维度:

Report w 40 ALL_MEASURES

如果此命令起作用,您将在列表中看到 DEMO.SALES_CUBE.PROFIT.MEASURE 。

现在运行启用向导,以便可以在 BI Beans 或 SQL 中查看新的公式。

添加变量

除了公式不实际存储数据,而变量存储数据之外,添加变量类似于使用公式。 要创建变量,您可以将关系数据移至分析工作区中。 您应当创建一个引用变量的公式,然后在多维数据集中引用公式。 这种方法支持更大的数据定义灵活性和使用 OLAP 引擎的聚合特性。 如果直接在多维数据集中引用变量,则在能够在更高的层次中查看数据之前,数据 必须 预先聚合。 然而,如果您使用执行聚合命令的一个公式,那么就不需要这个步骤;在这种情况下,可以预先聚合数据,也可以根据公式中指定的 aggmap 即时地聚合数据。 当 AWM 从关系型多维数据集中创建多维数据集和量度时,它自动为多维数据集中的每个量度创建变量。 这些变量的名称始终是 _VARIABLE 的形式,并且一个以量度名称命名的公式将被创建。 这些公式是分配给多维数据集的量度。 这允许按需要即时地聚合(默认行为)或者预先聚合。

为新的量度创建多维数据集

如果您创建了一个新的变量或公式,且您想要以量度的形式查看数据,那么它们必须被分配给一个多维数据集。 如果您将这些新的量度与现有的多维数据集相连,则您在刷新该多维数据集时可能遇到问题。 目前,刷新向导将识别对多维数据集所作的修改,而不能正确地刷新数据。 (下一个版本, 10 g ,将更好地解决这种情况。) 因此,您应当创建一个单独的多维数据集。 包含了一个程序,该程序可用来创建一个能够用来包含新量度的新多维数据集; 显示了可在 OLAP Worksheet 中运行以创建多维数据集、创建公式、并将该公式分配给新多维数据集的 OLAP DML 命令。

启用分析工作区

Oracle 应用程序一般被设计用来在 Oracle Database 的关系表中运行。 关系表必须遵从应用程序设定的某些标准,某些形式的元数据用来为应用程序识别数据。 例如, BI Bean 需要一个星型或雪花模式,该模式具有为解数据提供的嵌入式总体维度视图,此外还需要 OLAP 目录元数据来说明该模式。

相同的应用程序无需修改就可以在启用的分析工作区上运行。 启用一个分析工作区意味着您已在数据库中创建了 OLAP 表视图,这些视图允许用与关系多维数据集相同的方式来查看分析工作区多维数据集。

如何为 BI Beans 和 SQL 访问启用分析工作区

完成以下步骤来启用分析工作区:

  1. 充分扩展 OLAP 目录视图来查看您想要启用的工作区。
  2. 右键单击您想要启用的分析工作区的名称。
  3. 选择 "Enable Workspace for OLAP API & BI Beans" 。

完成向导的步骤,您可以选择是否保存启用脚本。 当向导完成时,保存您的工作区。 您的数据现在已准备好了,可供查看。

当您为 OLAP API 和 BI Bean 启用分析工作区时,您创建了几个视图,它们组成了一个星型模式。 此外,您创建了 CWM2 元数据,它使得这些视图可被 BI Beans 应用程序访问,以及可进行直接的 SQL 访问。

如何为 Oracle Discoverer 启用分析工作区

完成以下步骤来启用分析工作区:

  1. 扩展 OLAP 目录视图来查看您的模式的工作区。
  2. 右键单击您想要启用的分析工作区的名称。
  3. 选择 "Enable Workspace for Oracle9 i AS Discoverer Using Wizard" 。 完成向导的步骤。
  4. 分离分析工作区(如有必要,先保存您所作的修改)。
  5. 运行由向导生成的 SQL 脚本来创建视图。
  6. 使用 Oracle Discoverer Administrator 导入向导生成的 EEX 文件,以创建一个终端用户层 (EUL) 。

Enable for Discoverer 向导在您运行 Analytic Workspace Manager 的本地计算机上生成了两个文件: 一个 SQL 脚本,它以 OracleAS Discoverer 要求的格式创建工作区数据的视图;一个 EEX 文件,它包含了用来创建一个终端用户层的 XML 。 在您运行了该脚本并导入了该 EEX 文件之后,分析工作区才被启用。

该版本在每一维度上仅支持一个层次。 如果一个维度有多个层次,您必须选择其中之一,以便通过 OracleAS Discoverer 进行访问。

刷新数据

取决于初始构建期间选择了哪一个选项,可能不是所有的数据都被加载,因此在分析工作区能够被使用之前,必须执行一次初始刷新。 所有的分析工作区都将需要用新的或更新的数据进行刷新。 数据源将拥有新的时段以及其它新的维成员。

使用刷新向导

Refresh Analytic Workspace 向导用于为选定的维度添加新的成员,以及为选定的量度重载所有的数据。 注意,该向导要求新的数据与来自初始构建过程的数据在相同的表中。 如果这种配置发生变化,向导将不起作用。

按照以下步骤刷新数据:

  1. 扩展 OLAP 目录视图来查看您的模式的工作区。
  2. 右键单击您想要启用的分析工作区的名称。
  3. 选择 "Refresh Analytic Workspace Using Wizard" 。 完成向导的步骤。

您可以刷新各个维度、量度或者两者都刷新。

  1. 如有必要,重新启用多维数据集。
  2. 如果数据是预先计算的,请重新部署聚合计划。

数据刷新什么时候需要重新启用?

通常,日常数据刷新不需要您为特定的应用程序重新启用工作区,因为启用程序创建的视图不需要为新的维成员重新定义。 如果您对分析工作区多维数据集执行了以下任一操作,则需要重新启用工作区:

  • 改变了源多维数据集的 OLAP 目录元数据
  • 在分析工作区中添加或删除了一个多维数据集
  • 在分析工作区中添加或删除了一个量度
  • 在分析工作区中修改了一个层次
  • 在分析工作区中添加或删除了一级
  • 改变了分析工作区的 OLAP 目录元数据。

因为启用步骤用很短的时间即可完成,因此您可能希望在每次刷新分析工作区时都重新启用它。 利用新的启用 API 调用,现在有可能从脚本来调用这个启用过程,而无需使用 AWM 。 如果您想要删除旧的维成员(例如,转出和您添加的新时段数量相同的时段)或仅加载新的数据值,则可以生成新的编译脚本并修改对 DBMS_AWM 程序包的调用。

移植 Express 数据库

将 Oracle Express 数据库转移到 Oracle OLAP 中相当简单。 就像在 Express 中一样, EIF 文件用于从数据库中转移分析工作区的内容。

只需通过使用 EIF 文件来转移对象,就可以从 Oracle Express 数据库中创建分析工作区。 创建一个数据库标准格式的分析工作区,以便可以使用当前版本的 OLAP 工具要更复杂一些。 通过移植数据库,您可以利用您对 Oracle Express 的投资。 如果 Oracle Express 数据库包含了 Oracle Express 对象 (OEO) 元数据(也就是说,它是由 Oracle Express Administrator 创建的),则可以使用一个名为 CREATE_DB_STDFORM 的转换程序。 如果没有 Oracle Express 对象元数据,则 CREATE_DB_STDFORM 不能为 OLAP 工具运行生成足够多的标准格式元数据。 在这种情况下,标准格式元数据将必须人工填入。

此外,当数据被转换成标准格式时,您可以使用 AWM 中的聚合向导来构建和部署聚合计划。 这种方法比使用 Express 中旧的 ROLLUP 命令要更快而且更有效得多。

不过,在使用这个过程时,还有一些限制:

  • 如果您想对数据执行基于时间的分析,在使用 CREATE_DB_STDFORM 之前,必须识别一个时间维度,并填入结束日期和时间跨度属性。 关于更详细的信息,请参见 Oracle9 i OLAP 开发人员指南的 OLAP API 部分
  • 如果数据库包含的程序和加载过程引用了过时的命令,那么必须修改它们。 例如, DB 文件已不再被支持。 您可能还想利用新的特性,如新的聚合功能。
  • 您不能使用 AWM 中的刷新向导来将新的数据拷贝到经过转换的分析工作区中。 相反,您必须修改加载程序或创建新的加载程序,然后人工运行它们。

从 Oracle Express 对象元数据中进行转换

Oracle Express 对象转换工具处理整个分析工作区。 它使用 OEO 元数据来识别不同对象的角色,然后执行以下操作:

  • 填入具有适当的标准格式属性的现有对象
  • 创建具有标准格式所需的维度和属性的新的标准格式对象,并将数据从现有的对象拷贝到其中
  • 创建并填入标准格式的元数据对象,如标准格式目录, member_gid 和 member_inhier 变量,以及 member_familyrel 和 member_levelrel 关系。

注意,该转换工具只添加标准格式的对象和属性;它不删除 Oracle Express 对象或属性。

CREATE_DB_STDFORM 语法

CREATE_DB_STDFORM 程序运行 OEO 转换工具。 该程序从 OLAP Worksheet 中或使用任何其它用于调用 OLAP DML 程序的方法来进行调用。 调用语法是:

CREATE_DB_STDFORM(aw, [mode], [debug], [directory], [filename], [metacheck])

其中:

aw 是要转换的分析工作区的名称 (TEXT)
mode 是 AW (RO | RW | RWX) (可选默认值 RW )的附加模式
debug 控制是否运行调试器 (YES | NO) (可选默认值 NO )
directory 是将写入调试文件的目录 (TEXT) (可选)
filename 是调试文件的名称 (TEXT) (可选)
metacheck 控制是否在转换之前进行元数据检验 (YES | NO) (可选默认值 YES )。

例如,命令:

Call CREATE_DB_STDFORM('SALES_DB','RW','YES','OLAP_DIR','SALES_DB.LOG','YES')

以读 / 写模式附加 SALES_DB 、验证 OEO 元数据是完整的、将分析工作区转换为标准格式,并将消息保存至 OLAP_DIR 目录下的 SALES_DB.LOG 文件。

移植过程

将数据转换至标准格式的大多数步骤(如创建一个新的分析工作区和导入 EIF 文件)可以在 AWM 中的对象视图中完成。 按照以下步骤,使用 OEO 元数据转换工具来从一个现有的 Express 数据库中创建一个标准格式的分析工作区:

•  从 OEO 数据库中创建一个 EIF 文件,并将该文件拷贝到与一个数据库目录相映射的物理目录中。

•  登录 AWM ,并与期望的分析工作区相连(如有必要,创建一个空的工作区)。

•  以读写 (RW) 模式打开分析工作区。

•  右键单击分析工作区,然后选择 Import from EIF File 。

•  选择 "All Objects" 、 EIF 文件所处的目录,以及要导入的 EIF 文件的名称。 确保选中了 Advanced 标签上的 "import object definition" 和 "import object properties" 。 单击 Import 进行导入。

•  从 Tools 菜单中,选择 "OLAP Worksheet" 。 创建结束日期和时间跨度属性,并填入所需的结构(如果需要)。 利用诸如 Call CREATE_DB_STDFORM('SALESAW') 之类的命令运行 OEO 转换工具 。 当程序成功完成时,保存对数据的更改( UPDATE 和 COMMIT )。

数据现在被更新为标准格式。 现在工作区已准备好,可以启用了。 按照之前所述的过程来为 BI Bean 、 SQL Access 或 Discoverer 启用工作区。 要用新的或更新的数据来刷新分析工作区,需修改和运行数据加载程序。

注意: 必须修改原来的数据加载程序来反映 OLAP DML 中的变化,如删除 sql 连接语句、数据库( .db 文件)引用,以及任何对直接 OS 访问的引用。 关于更多信息,请参见 Oracle9 i OLAP 开发人员指南的 OLAP DML 部分 (参见 “ ” )。

 

结论

万事皆已具备,初学者现在也可以使用 Oracle OLAP ,而无需了解复杂的命令。 Analytic Workspace Manager 易于使用,通过使用产品中包含的向导, OLAP 多维数据集能够被快速构建并部署在分析工作区中,无需使用除该工具之外的任何东西。 对于复杂的应用,可以使用一些更高级的特性来构建能够满足今天对高级分析需求的高性能 OLAP 数据库。 在 OLAP 和 AWM 的 10 g 版本中将包含更高级的特性,其中包括创建 AW 多维数据集和量度而无须依赖于关系型多维数据集的功能。 为了更详细地了解所有这些特性,请务必阅读本文中提到的开发人员指南。

Chris Claterbos ( ) 是 Vlamis Software Solutions ( — 位于肯萨斯市的一家咨询公司 — 的咨询和开发经理。 Vlamis Software Solutions 是一家获得 Oracle 认证的专业服务公司,它提供基于 Oracle 技术的商务解决方案。
阅读(924) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~