Oracle 商务智能 Discoverer (OracleBI Discoverer) 是一套商务智能工具,使用户能够查询和分析 Oracle 和其他数据库中存储的数据。 作为 Oracle 商务智能 10g 的一部分,OracleBI Discoverer 为 Oracle 数据库 10g 企业版增加了 OLAP 选件。
该选件扩展了 Oracle 数据库的分析功能,为其增添了一个逻辑维模型以及专用的多维数据类型。
本文解释了将 OLAP 选件添加到 OracleBI Discoverer 报表和分析中的好处,介绍了 Analytic Workspace Manager 10g 工具,并说明了 OracleBI Discoverer 治理员为其用户提供 OLAP 报表所采取的步骤。
组织的维视图
在分析一个组织的性能时,要考虑很多方面。 以销售经理为例,他们负责本地区的利润 — 地区的绩效可能会受销售团队表现、所销售的产品组合、客户以及一段时期内销售概况的影响。 另一个例子是学校治理人员,他们希望衡量学校的年级平均级点。 影响年级平均级点的因素包括学生的背景、课程的类型、每门课程的教师、所采用的科目,并且治理人员肯定希望了解一个学年中平均级点的变化情况。
类似这样的情况可以被看作是多维问题。 在学校治理人员的例子中,问题是得出提高年级平均级点的方法,而问题的维则包括多年以来不同的教师、学生、课程和教学部门。 对于销售经理而言,问题是提高地区的销售绩效;问题的维则包括销售人员、销售区域、产品组合、分销渠道和时间。 在每种情况下,有关人员都在着手解决多维问题,而为了获得答案,就必须牢记该问题的所有这些方面。
图 1: 问题的多维性质
OracleBI Discoverer for OLAP 以及 Oracle 数据库 10g 企业版的 OLAP 选件使您能够使用您熟悉的 OracleBI Discoverer 工具套件,在 Oracle 数据库中创建数据的多维模型,并就地查询和分析这些模型。 此外,通过使用 Microsoft Excel 可以访问这些多维模型,将 Oracle 强大的分析功能与标准的 Excel 功能结合起来。
逻辑维模型
OracleBI Discoverer 的用户和治理员将会熟悉最终用户层、业务数据区、文件夹、项、联接、层次和项类的概念。 OracleBI Discoverer 答应治理员定义业务数据区和文件夹,它们映射到数据库模式中的表和列。 治理员定义文件夹之间的联接路径,并能够创建那些从联接表中将项目合并起来的复杂文件夹。 最终用户层和业务数据区使治理员能够使用熟悉的业务术语清除关系数据库的复杂性并为用户提供数据项。
利用其 OLAP 支持,OracleBI Discoverer 通过使用一个在 Oracle 数据库中创建的维模型为治理员和用户提供 OLAP 数据。 该维模型反映了用户描述其业务的方式。
暂且回过头来探讨销售经理的问题,他们试图了解的销售情况和趋势是由一段时期内产品、客户和渠道之间多种相互作用产生的。 销售经理需要多维思考,这是因为需要考虑这些因素如何相互作用,而 OracleBI Discoverer 以一种反映这种多维思考的方式为用户提供数据。
在逻辑维模型中,数据是按照一个或多个维 — 如产品、客户、销售区域和时间 — 来组织和测量的 — 如销售单位数和平均价格。 一个维可以拥有一个或多个成员(单个客户、产品类别、销售区域),并且组织成一个或多个层次。 层次定义了底层数据是如何积累起来的,它可以包含级别(产品、产品组、产品类别),而属性可用于描述维成员的特征,如大小、颜色或产品代码。 逻辑模型可以包含很多维、多维数据库集、测度、层次、级别和属性,并且通常将来组织各部分的数据聚集起来。
点击查看大图图 2: 使用 OracleBI Discoverer 查看 OLAP 逻辑模型
当您从维的角度考虑数据时,可以使用业务人员熟悉的术语建立维查询。例如,
“对于世界上每个地区,从一年前算起的三个月时间与今年的同时期相比,我们最重要的 20% 的产品的收入百分比变化是多少?”
或
“谁是最重要的 10 位客户?”
而不必担心数据是在数据库中的存储方式。
Oracle OLAP 多维引擎
Oracle 数据库 10g OLAP 选件提供一个逻辑维模型,并且能够以关系数据类型和多维数据类型来存储数据。 当以关系形式保存 OLAP 数据时,OLAP 选件在关系表和列上对维的元数据进行分层,并为数据访问提供一个维 java OLAP API。 当 OLAP 数据以多维形式存储时,它以分析工作区中保存的多维数据类型的形式保存,这是一种来自于 Oracle EXPRess Server 产品系列的技术,但是现在该技术嵌入了 Oracle RDBMS 中,并通过相同的 Java OLAP API 或 SQL 提供访问。
OLAP 选件所配备的多维引擎在执行 OLAP 分析方面提供了一些优于关系实施的功能。 多维数据库非凡适用于即席分析,不限制用户所能分析的数据,并且在任何时候能够定义任何类型的计算。 多维数据类型将数据存储在基于数组的专用数据结构中,这种数据结构在即席查询环境中可提供性能优势,而且因为测度与维是预先联接起来的,所以将条件应用到查询的过程极为高效。 OLAP 选件多维引擎包含对处理大型稀疏数据集的优化,并且自动处理基础数据与存储的聚合之间的导航。
此外,多维引擎可以提供对专用 OLAP 服务器多种常用复杂计算的访问,如分配、猜测、维内的等式系统以及时序计算。 简言之,假如您考虑使用 OLAP 选件并且希望使用多种分析和统计计算来提供快速灵活的报表服务,则应将您的 OLAP 数据存储在专用的多维分析工作区中,而不是存储在无法提供这种级别的灵活性或功能的关系数据类型中。 但是您如何着手使用这种特性呢?
Analytic Workspace Manager 10g
虽然 OracleBI Discoverer 治理员可能对所有这些关于分析工作区和多维数据类型的讨论并不熟悉,但是 Oracle 早就提供了两种工具,使多维数据的创建和维护变得简单、直接。 Oracle Warehouse Builder 是 Oracle 完整的提取、转换和装载 (ETL) 工具,它提供了将数据载入多维分析工作区的功能,通常由数据仓库开发人员和 DBA 使用。 但是通常情况下,OracleBI Discoverer 系统的治理员不需要诸如 Oracle Warehouse Builder 等工具的全部特性,这是因为他们的数据已经经过了提取和预备,相反,他们更喜欢那些专门用于维护其 OracleBI Discoverer 元数据和工作簿的工具。 希望利用 OLAP 选件并使用分析工作区来保存其 OLAP 数据的 OracleBI Discoverer 治理员和部门的超级用户在 OTN 上可免费下载 Analytic Workspace Manager 10g。
使用 Analytic Workspace Manager 10g,您可以构建一个表示 OLAP 数据的逻辑维模型来定义维、级别、层次、属性和测度以方便您组织数据。
点击查看大图图 3: Analytic Workspace Manager 10g 模型视图
逻辑模型一旦建成,您就可以使用 Analytic Workspace Manager 10g 将数据源映射到这个逻辑模型上,然后使用该工具来填充和维护您的分析工作区了。 Analytic Workspace Manager 的界面直观、简单,它遵循了创建多维 OLAP 数据集的逻辑工作流,并创建可以立即用于 OracleBI Discoverer for OLAP 的 OLAP 多维数据集和维。
我们一起逐步完成一个用于 OracleBI Discoverer for OLAP 的多维 OLAP 数据集的创建过程。 本示例使用了 GLOBAL 示例模式,您可以马上从 OTN 下载该模式。
构建分析工作区
在开始使用 Analytic Workspace Manager 10g 之前,首先确保 Oracle 数据库 10g 企业版已经安装了 OLAP 选件并应用了补丁集 2 (10.1.0.4)。 然后将数据库参数设置为适于分析工作区数据加载的值:
PARALLEL_MAX_SERVERS = 处理器的数量,较少的那个
PGA_AGGREGATE_TARGET = 可用内存的 40%
UTL_FILE_DIR = OLAP 需要写入的所有目录
UNDO_MANAGEMENT = AUTO
UNDO_TABLESPACE = 如前定义
现在,创建用于保存数据的表空间和数据文件:
CREATE TABLESPACE "GLOBAL"
DATAFILE 'GLOBAL.DBF' SIZE 90M AUTOEXTEND ON NEXT 5M;
CREATE TEMPORARY TABLESPACE "GLOBAL_TEMP"
TEMPFILE 'GLOBAL_TEMP.DBF' SIZE 90M AUTOEXTEND ON NEXT 5M
UNIFORM SIZE 256K;
然后创建将保存源数据和分析工作区的模式。
CREATE USER "GLOBAL"
IDENTIFIED BY "GLOBAL" DEFAULT TABLESPACE "GLOBAL"
TEMPORARY TABLESPACE "GLOBAL_TEMP"
QUOTA UNLIMITED ON "GLOBAL"
QUOTA UNLIMITED ON "GLOBAL_TEMP";
GRANT "OLAP_USER" TO "GLOBAL";
然后,使用 Import 实用程序,将示例源数据导入 GLOBAL 模式中。例如,
IMP GLOBAL/GLOBAL
Import file: EXPDAT.DMP > GLOBAL_TABLES.DMP
Enter insert buffer size (minimum is 8192) 30720> 30720
List contents of import file only (yes/no): no > no
Ignore create error due to object existence (yes/no): no > no
Import grants (yes/no): yes > yes
Import table data (yes/no): yes > yes
Import entire export file (yes/no): no > yes
启动 Analytic Workspace Manager 10g,注册您的数据库,并以 GLOBAL 用户身份登录。 右键单击 GLOBAL 模式,选择 Create New Analytic Workspace,并将其命名为 GLOBAL。
点击查看大图图 4: 创建一个分析工作区
创建第一个维。现在您创建第一个维 CUSTOMER。 单击 GLOBAL 分析工作区,右键单击维节点,选择 Create Dimension。
CUSTOMER 维有两个层次,即 SHipMENTS 和 MARKET SEGMENT。 但是,第一步是定义这两个层次所使用的所有级别;然后要将它们组织到不同的层次中。
展开 CUSTOMER 维,右键单击级别,创建以下的级别:
TOTAL_CUSTOMER
TOTAL_MARKET
REGION
WAREHOUSE
SHIP TO
MARKET_SEGMENT
ACCOUNT
右键单击层次节点,并创建 SHIPMENTS 层次。 将级别 TOTAL CUSTOMER、REGION、WAREHOUSE 和 SHIP TO 包括在其中(按照从上到下的顺序)。
点击查看大图图 5: 创建 SHIPMENTS 层次
然后再次右键单击层次节点;创建另一个层次 MARKET SEGMENT;将级别(从上到下)TOTAL_MARKET、MARKET_SEGMENT、ACCOUNT 和 SHIP TO 包括在其中。 在完成这些工作后,您的屏幕应该看上去像这样:
点击查看大图图 6: 查看您的两个层次
将要用于填充此维的数据位于 GLOBAL 模式的一个名为 CUSTOMER_DIM 的表中,它是若干维表中的一个,将为您的分析工作区提供一些所需数据。 单击模型视图中的 Mappings 节点,并下钻到 GLOBAL 模式。 单击 CUSTOMER_DIM 表并将其拖到映射窗格中,从 Type of Dimension Table(s) 下拉列表中选择 Star Schema。
因为此维的源数据保存在一个星型模式的表中,所以您可以利用映射工具栏中的 Auto Map Star Schema 按钮将您的源字段自动映射到逻辑维模型。 在映射数据后,您的屏幕应该看上去像这样:
点击查看大图图 7: 将维映射到源数据
导入模板。 接下来创建 PRODUCT 维,但是不需要您手动创建它。 相反,您使用一个随 GLOBAL 示例模式提供的模板文件来进行定义。 Analytic Workspace Manager 10g 答应您将维和多维数据集的定义保存为 xml 模板,例如,您可以将它们保存在版本控制系统中,或者使用它们将您的逻辑模型部署在一个不同的位置。
要导入定义,右键单击维节点并选择 Create dimension from template。 导航到您解压缩 GLOBAL 示例模式的目录,选择 Product Other.XML 文件。
该文件包含 PRODUCT 维的定义。 导入定义,然后展开该维的项。 请注重,它是一个具有四个级别的单一的层次,还有三个属于 ITEM 级别的附加属性。
在映射窗格中,注重已将源数据映射到了 PRODUCT 维上。 在该实例中,源数据保存在几个正规化的表中,而 Type of Dimension Table(s) 下拉列表设置为 Other。 通过 Analytic Workspace Manager 10g,您的源数据不再需要以星型模式存在,而以雪花模式排列的表(甚至常规的正规化表)都非常易于用作数据源。
点击查看大图图 8: 从正规化的表中映射数据
要完成逻辑模型的维集合,通过导入 Time Star.XML 和 Channel Star.XML 模板文件导入 TIME 和 CHANNEL 维的定义。
设计多维数据集。 下一步是设计多维数据集。 多维数据集是逻辑维模型的一部分,它将测度与其维结合起来;它们是从源数据中直接加载的测度和任何其他计算的测度的容器。多维数据集中的每个测度共享同一组维。 逻辑模型可以包含多个多维数据集,但是一个多维数据集中的所有维都必须来自同一个分析工作区。
在本示例中,您将创建单个多维数据集,它将包含 UNITS_SOLD 和 SALES 的测度。 要创建该多维数据集,单击 Cubes 节点,单击右键并选择 Create Cube。 将多维数据集命名为 UNITS_CUBE,并选择所有四个维。
点击查看大图图 9: 定义单位多维数据集
Implementation Details 选项卡使您能够指定 Analytic Workspace Manager 10g 如何排列多维数据集中维的顺序以及是否使用诸如压缩和分区等特性来提高数据加载和聚合的性能。
在多维数据集中维的排列顺序很重要,因为这决定着测度值在磁盘上的存储方式。 分析工作区中的测度是以数据线性流的方式存储的,其中被称为“变化最快”的维的数值被紧密地集结在一起,而“变化最慢”的维的数值则分散得很远。 因此变化最快的维应该是维成员数量最大的维,并且需要被列为多维数据集中的第一维,而其余的维按照大小顺序排列,因此最后面的维即最后一维变化最慢。
Implementation Details 选项卡还答应您将维指定为稀疏或紧密。 稀疏性是指单元包含 NA 或空值、数值的范围,而您的 UNITS_CUBE 很可能在 PRODUCT、CHANNEL 和 CUSTOMER 维上呈现稀疏状态,这是因为并不是每种产品都会通过每个渠道销售给每位客户。 当您指定两个或多个维是稀疏维后,Analytic Workspace Manager 10g 生成一个复合规范。该规范将这些逻辑维作为单一复合实施,并根据该复合而不是各个单独的维确定测度的维。 以这种方式存储数据可减少分析工作区在聚合时所需的磁盘空间数量,并加快用户查询的响应时间。 有关复合的更多具体信息,请参见 Oracle OLAP DML Reference 10g 第 1 版 (10.1.0.3)。
假如您知道您的多维数据集极为稀疏,则可以选中 Compression 复选框,并使用 Oracle 数据库 10g 引入的一种称为压缩复合的新特性来实施您的多维数据集。 压缩复合使用一种专利算法,减少了测度和复合中的冗余数据,并生成最小可能性的测度、复合和复合索引,并能够显著减少多维数据集聚合所需的时间。 该新特性的第一版对何时可以使用压缩复合有些限制,并且在聚合方面有些约束,这些在 Oracle 数据库 10g 第 2 版中就会得以解决。但是,假如您的多维数据集极为稀疏,则可以通过使用此选项来显著提高性能。 有关压缩复合的更具体信息,请参阅 Analytic Workspace Manager 10g 联机帮助。
在您的示例中,多维数据集只属于中等程度的稀疏,因此应该使此选项保持未选中状态。
Create Cube 对话框中的另外两个选项卡答应您指定在多维数据集中如何聚合测度以及在何种程度上预先计算和存储汇总信息。 如前所述,分析工作区与关系 OLAP 实施不同,在其本身的测度中嵌入了汇总信息,并自动执行聚合导航。您可以通过使用这两个选项卡确定如何执行这种聚合。
在 Rules 选项卡上,您可以为每个逻辑维选择默认的 SUM 聚合,或者选择分析工作区可以使用的多种替代聚合方法中的一种,如优先加权、平均加权或不加权。
点击查看大图图 10: 设置聚合规则
但是对于这个多维数据集而言,每维只需一个简单的 SUM 聚合,因此您应该保留各个方法的默认设置。
使用 Summarize To 选项卡,可以选择预先汇总每维中数据的级别。 在默认情况下,Analytic Workspace Manager 10g 预先选择了在每维中每隔一级的选项,这通常可提供在查询响应时间与多维数据集预备查询所需的时间之间的一种可接受的平衡。
现在既然已经定义了 UNITS 多维数据集,就可以在模型视图中展开该多维数据集并右键单击 Measures 节点。 选择 Create Measure,并将其命名为 UNITS。 再次执行同样的操作,创建另一个名为 SALES 的测度。 您可以选择覆盖您先前为多维数据集定义的聚合规范,但是对于本示例而言,您应该接受默认值并继续父多维数据集的规范。
将用于填充 UNITS 和 SALES 测度的数据也位于 GLOBAL 模式的一个表中。 单击 Mappings 节点,将 GLOBAL.UNITS_HISTORY_FACT 表拖到 UNITS 多维数据集旁的映射窗格中。 由于 UNITS 事实表是星型模式的一部分,单击 Auto Map Star Schema 按钮,将事实源列映射到您的多维数据集。
点击查看大图图 11: 将源数据映射到单位多维数据集
请注重,不是将事实表列自动映射到 UNITS 多维数据集,而是使用 Oracle Warehouse Builder 用户所熟悉的一种技术手动将每个源字段映射到相关的测度或维级别。
除了来源于源数据表中的 UNITS 和 SALES 测度,您现在还要创建一个计算的测度,它包含自从去年同期以来销售增加或减少的量。 要实施这一计算的测度,右键单击 UNITS 多维数据集的模型视图中的 Calculated Measures 节点,将该计算的测度命名为 PCT_CHANGE_SINCE_LAST_YEAR,并从 Prior/Future Comparison 文件夹中选择 Percent Difference from Prior Period 计算类型。
点击查看大图图 12: 创建一个计算的测度
在向导的下一页上,选择 SALES 作为您要计算百分比差异的测度,将 CALENDAR YEAR 作为时间层次,将 YEAR AGO 作为日期范围。
点击查看大图图 13: 定义一个时序计算
单击 Finish。 创建“时序”计算的便利性是使用分析工作区的重要优点之一,而 Analytic Workspace Manager 10g 答应您不必了解 OLAP DML(用于编程和查询分析工作区的语言)即可创建这些计算。
加载多维数据集。 既然 OLAP 维、多维数据集和测度都已构建完成,并且指定了源数据,就可以加载多维数据集了。 右键单击 GLOBAL 分析工作区,然后选择 Maintain Analytic Workspace GLOBAL。 高亮显示并选中分析工作区中的所有对象。
点击查看大图图 14: 选择用于构建的多维数据集和维
在下一页上,接受默认选项,单击 Next,然后确保选中 Run Maintenance Task Immediately In This session 复选框。 单击 Finish,Analytic Workspace Manager 10g 将源数据加载到您的对象中。
在加载结束时,Analytic Workspace Manager 10g 报告每阶段的进度和结果,您应该在报告结束时进行检查,以确保加载过程没有错误。
点击查看大图图 15: 监视多维数据集的构建过程
现在您可以使用 Analytic Workspace Manager 10g 来预览测度和维中的数据。 右键单击 CUSTOMER 维,选择 View Data Customer。 然后您可以查看这一逻辑维中的维成员,并在层次和级别上进行上下导航来检查您的数据。
图 16: 查看客户维
对 UNITS 测度进行同样的操作。 请注重,维层次的所有级别上都有数值,其中一些根据您的每项规范预先进行了计算,其余的则“即时”计算。
点击查看大图图 17: 查看单位多维数据集
使多维数据集能够用于 OracleBI Discoverer for OLAP。 最后,OracleBI Discoverer for OLAP 没有将其元数据保存在最终用户层中,而是将其工作簿定义和权限保存在 Discoverer 目录中。 假如您尚未这样做,则现在需要使用 Oracle 应用服务器控制,答应 GLOBAL 用户能够访问 Discoverer 目录。
点击查看大图图 18: 启用 Discoverer 目录的模式
登录到应用服务器控制,导航到 Discoverer 目录,并批准 GLOBAL 模式。
使用 OracleBI Discoverer for OLAP 分析多维数据集
现在您可以使用 OracleBI Discoverer for OLAP 分析 OLAP 多维数据集。 在 Web 浏览器中,启动 OracleBI Discoverer Plus,从下拉菜单中选择 OracleBI Discoverer for OLAP,等待页面刷新,并输入您连接的具体信息。
点击查看大图图 19: 连接 OracleBI Discoverer for OLAP
使用工作簿向导,创建一个新的交叉表和图形,并选择您要出现在工作单中的测度。 注重观察维是如何自动添加到您的选择中的。 以后您可以从每个逻辑维中选择要显示的级别和属性。
点击查看大图图 20: OracleBI Discoverer 工作簿向导
按照工作簿向导的指引逐步进行,在选择了您要包括在工作表中的图形之后,您可以为每个维指定您要在工作表中包括的层次和维成员。
在将维成员手动添加到您的选择之后,可以使用 Conditions 选项卡在您的选择中有条件地添加或删除维成员。 例如,首先将所有 WAREHOUSE 级别的维成员添加到您的选择中,类似这样:
点击查看大图图 21: 选择维成员
然后,使用 Conditions 选项卡,保留销售量居前五位的仓库。 注重观察向导如何帮助您逐步构建查询以及如何为您预定义了最常见的条件类型 — 不需要懂得复杂的分析 SQL 或某种个别的 OLAP 查询语言。
点击查看大图图 22: 向维选择添加条件
既然您已经精选了维成员选择,就可以使用向导定义其余的维成员选择来完成该过程了。
点击查看大图图 23: 查看维成员选择
出现您的 OracleBI Discoverer 工作簿。
点击查看大图图 24: 已完成的 OracleBI Discoverer for OLAP 工作簿
将维模型、易用的查询构建器与分析工作区的功能结合起来使用,就可以构建 OracleBI Discoverer for OLAP 工作簿了,它们反映了您的业务用户的多维思考方式。
使用 Oracle 电子表格插件分析多维数据集
除了能够使用 OracleBI Discoverer 显示 OLAP 数据之外,您还可以使用新的 Oracle 电子表格插件将数据导入到 Microsoft Excel 中。 您可以直接从 OTN 下载 Oracle 电子表格插件,或者将其作为 Oracle 商务智能工具集的一部分来安装。
在安装 Oracle 电子表格插件并加载 Microsoft Excel 之后,导航到 Oracle 菜单项并创建一个新查询。 使用连接编辑器,创建一个到保存 OLAP 数据的数据库的连接。 然后在 OLAP Connection 对话框中,连接到 global 模式。
然后您将看到查询向导,它答应您创建一个 OLAP 查询,其创建方式与 OracleBI Discoverer for OLAP 查询的创建方式相似。 使用查询向导,选择 SALES 测度,并如同前面那样将相同的条件应用于各维。
图 25: Oracle 电子表格插件查询向导
在您完成了查询定义后,您的 OLAP 数据出现在电子表格中,在需要时可以进行刷新,并可以像对待电子表格中的任何其他数据那样对待这些数据。
点击查看大图图 26: 在 Microsoft Excel 中查看 OLAP 数据
总结
将 OLAP 选件添加到 OracleBI Discoverer 使您能够使用逻辑维模型基于数据进行查询和产生报表。 使用逻辑维模型的优点就是它反映了人们描述其组织的方式。
通过利用多维分析工作区实施逻辑维模型,您可以利用现在已嵌入 Oracle 数据库 10g 中的 OLAP 引擎的查询和聚合优化功能。 Analytic Workspace Manager 10g 现在可以从 OTN 免费下载,它可以帮助您快速构建分析工作区,这些分析工作区使您能够使用 OracleBI Discoverer 的 OLAP 功能。 与 Oracle 电子表格插件相结合,OracleBI Discoverer、Oracle 数据库 10g 和 OLAP 选件使您能够为所有类型的用户提供完善易用的商务智能。