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