构建业务智能体系架构时,您想满足的主要要求之一便是能够提供快速和灵活的数据分析。您的关系数据仓库将保存您的详细级别事务,您的用户通常要汇总这些数据,添加他们自己的计算,并使用即席查询工具分析这些数据。
您可能知道,Oracle 业务智能套件企业版提供与许多不同关系型数据库平台的连通性,并利用诸如 Oracle 数据库 11g 之类的关系型数据库对详细级数据仓库进行快速集成的访问。对于那些具有更复杂分析要求的用户,Oracle 业务智能套件可以连接到多维数据源(如 Oracle Hyperion Essbase - System 9),以提供对高级计算、预测、分配、跨维度查询和聚合数据的访问。与 Oracle 业务智能套件企业版一样,Oracle Hyperion Essbase 是基于标准的、可热插拔的,并且是 Oracle 融合中间件产品系列的一部分。
本文介绍 Hyperion Essbase,描述其体系结构,并阐述它如何与 Oracle 的中间件和业务智能技术系列相适应。稍后,您将了解构建 Hyperion Essbase 多维数据库,然后将它连接到 Oracle 业务智能套件企业版,从最近的 Oracle 数据库版本提供的 Sales History 示例模式中获取数据这一过程是多么简单。
Hyperion Essbase 简介
Hyperion Essbase 是一个多维数据库服务器,可以被看作 Oracle 业务智能套件企业版的补充的“分析服务器”,支持 Hyperion 规划和绩效管理工具。
Hyperion Essbase 被《Information Age》杂志评选为过去 10 年间 10 大最具影响力的技术创新(还包括 BlackBerry、Google、Netscape 和 Linux)之一,它是一个联机分析处理 (OLAP) 服务器,使用一个维模型从一系列数据源中提取数据,计算后对它们加以综合,然后提供对结果的快速访问。
Hyperion Essbase 支持从广泛的数据源(包括 Oracle 数据库 11g 以及其他关系数据库、文件和电子表格)提取数据,并通过几个 API 和几种语言(包括 XML/A 和 MDX)提供查询访问。与 Oracle OLAP 一样,Hyperion Essbase 将数据存储在一个专门优化的多维数据仓库中,但与 Oracle OLAP 将数据存储在关系数据库引擎外不同,它通常将数据存储在自己的专用服务器上。公司通常使用最新版本的 Oracle OLAP 向 Oracle 数据仓库添加分析和高级计算功能,而 Hyperion Essbase 通常用于需要支持一系列的数据库、业务智能以及规划和预测工具的异构环境中。
Hyperion Essbase 体系结构
Hyperion Essbase 是一个三层的应用程序,是对 Oracle 业务智能套件企业版的补充。
Hyperion Essbase 将数据存储在专门的多维数据库中,该数据库经过优化可以快速访问聚合数据。根据所存储数据的类型,Hyperion Essbase 可以创建“块存储”或“聚合存储”数据库,前者用于需要进行读/写访问的小型、高密度的数据集,后者用于具有很多维度和只读访问的稀疏、销售分析类型的应用程序。可以使用文件导入或直接 SQL 提取或者通过随 Hyperion Essbase 数据库服务器提供的实用工具将数据载入 Hyperion Essbase 数据库中。
Hyperion Essbase 数据库中最为重要的信息是“架构”,它描述了数据库的维度和层次体系结构,并详述了它包含的维度、维度成员、层次结构、量度、衍生量度和关键绩效指标。
您可以使用命令行创建一个新数据库及其架构,也可以使用 Hyperion Essbase Administration Services 和 Hyperion Essbase Integration Services 之类的工具以图形方式创建您的数据库并定义其结构。使用这些工具,您可以手动建立数据库架构,或者根据星型关系模式中的数据派生这些元数据。
完成 Hyperion Essbase 数据库的定义和加载之后,Oracle 业务智能套件企业版的用户可以将用于其 Hyperion Essbase 数据库的元数据导入其语义模型,并使用 Oracle Business Intelligence Answers、Oracle Business Intelligence Interactive Dashboards 和 Oracle Business Intelligence Publisher 应用程序提供元数据以及关系数据的报表。Oracle 业务智能套件企业版通过 XML/A API 使用另一个 Hyperion Essbase 实用工具 Hyperion Essbase Provider Services 来提供到 Hyperion Essbase 的原生连接,并自动将 Hyperion Essbase 数据库中的多维数据结构转换为 Oracle 业务智能套件企业版所期望的关系、维度数据模型。
现在您了解了 Hyperion Essbase 的功能和体系结构,那么如何创建 Hyperion Essbase 数据库并将它插入到 Oracle 业务智能套件企业版中呢?本文将使用 Oracle 9i、Oracle 数据库 10g 和 Oracle 数据库 11g 中包含的 Sales Analysis 示例模式提供的数据向说介绍如何完成这一工作。
示例 1:创建并填充 Hyperion Essbase 数据库
在这第一个示例中,您将使用 SH 示例模式提供的数据来创建并填充 Hyperion Essbase 数据库。要创建 Hyperion Essbase 数据库,您需要安装并配置了以下产品:
- Hyperion Essbase Server 9.3.1
- Hyperion Essbase Administration Services 9.3.1
- Hyperion Essbase Integration Services 9.3.1
- Hyperion Essbase Client 9.3.1
- Hyperion Shared Services 9.3.1
此外,如果您希望完成第二个示例并使用 Oracle 业务智能套件企业版分析 Hyperion Essbase 数据库,您还需要额外安装并配置以下产品。
- Hyperion Provider Services 9.3.1
- Oracle 业务智能套件企业版 10.1.3.3.2
您可以从 Oracle 的电子交付 Web 站点 (http://edelivery.oracle.com) 下载所有这些产品。
本文中的示例使用 Microsoft Windows XP(作为服务器和客户端平台)编写。尽管您需要安装 Microsoft Windows 来运行示例中使用的客户端工具,但服务器元素将运行在任何受支持的 Hyperion Essbase 平台上。
最后,您需要创建一个可以连接到包含 SH 示例模式的数据库的 ODBC 数据源。完成这些步骤后,即可进入下一步。
Hyperion Essbase Integration Services 介绍
在本示例中,您将使用 Hyperion Essbase Administration Services 创建第一个 Hyperion Essbase 数据库。
使用 Hyperion Essbase Integration Services,您可以快速轻松地将数据加载到 Hyperion Essbase 数据库中,同时根据关系源数据中发现的层次结构创建数据库并派生出数据库架构。针对更为复杂的数据和情况,您可以使用 Oracle Data Integrator 之类的工具将源数据转换为星型模式,也可以使用 Hyperion Essbase Administration Services 和直接 SQL 数据请求将数据手动加载到 Hyperion Essbase 数据库维度和量度中。
Hyperion Essbase Integration Services 具有客户端和服务器元素,将有关关系数据源的元数据(称为 OLAP 模型)以及从数据源派生的数据库架构(称为 OLAP 元数据架构)存储在信息库中,您可以将该信息库安装到一个 Oracle 数据库实例中。要连接到 Essbase Integration Services Console,提供 Hyperion Essbase Integration Services 信息库的用户名和口令以及 Hyperion Essbase 服务器的用户名和口令。
登录后,Essbase Integration Services Console 将显示一个向导,您可以使用该向导创建新的 OLAP 模型和元数据架构,打开现有的架构或者显示最近编辑或创建的架构。
如前面所提到的,使用 Hyperion Essbase Integration Services 创建一个新的 Hyperion Essbase 数据库包括两个不同阶段:
- 您创建一个定义星型关系模式的 OLAP 模型,该模式用于定义并加载您的 Hyperion Essbase 数据库。从定义您的 Hyperion Essbase 数据库的维结构(“数据库架构”)的 OLAP 模型派生出 OLAP 元数据架构。
要开始创建您的 OLAP 模型,单击 OLAP 模型图标和 Open 按钮。然后,系统将显示一个对话框,您可以在其中选择连接到您的源数据的数据源。使用 Data Source 下拉列表选择指向 SH 示例模式(如尚未创建,则立即返回并进行创建)的数据源,然后输入用户名和口令进行连接。
注意,如果是首次访问 SH 模式,您可能需要解锁帐户或者更改口令;要完成此任务,作为具有 DBA 角色的用户登录 Oracle 数据库实例,执行以下命令解锁帐户并将口令设置为“password”:
alter user SH account unlock;
alter user SH identified by password;
连接成功后,将显示 Essbase Integration Services Console ,供您定义 OLAP 模型。如果尚未完成上述工作,单击应用程序工具栏上的 Intelligent Help,将显示有关准备数据的上下文指导。
创建 OLAP 模型分为三个步骤:
- 定义 OLAP 模型事实表(该表所包含的列将继续为 Hyperion Essbase 数据库量度提供数据)并定义与该事实表相关联的维。
- 定义维度的聚合层次结构
- 最后,编辑 Account 维度以定义哪些事实表列实际上是量度(对应于外键列)
Hyperion Essbase 数据库是“超级立方体”(hypercube),这意味着数据库中的每个量度均通过所有维度来确定其维度。Hyperion Essbase 数据库轻松转换为星型关系模式,在该模式中,单个事实表与一个或多个维表联接,您现在创建的 OLAP 模型是该星型模式以及星型模式维表中层次结构的表示。
定义 OLAP 模型的第一步是选择事实表,方法是:从应用程序菜单中选择 Tools -> Create Fact Table,或者在 Essbase Integration Services Console 左侧的数据库对象列表中找到 SH.SALES 表并将它拖至右侧的面板中。选择事实表时,当系统询问您是否要创建 Time 维时(稍后将手动完成它),选择 No,当系统询问您是否要创建 Accounts 维时,选择 Yes。
选择了事实表并回答了上述问题之后,Essbase Integration Services Console 的外观应与下面的屏幕截图类似:
Accounts 维是详细描述数据库中的量度的维,稍后您将返回到该维。但就现在而言,接下来您需要定义 OLAP 模型中的维。要完成此任务,将 SH.CHANNELS、SH.CUSTOMERS、SH.TIMES、SH.PROMOTIONS 和 SH.PRODUCTS 表拖放到 OLAP 模型图中,或者通过从应用程序菜单中选择 Tools -> Create Dimension 让 Essbase Integration Services Console 自动为您选择这些表(基于联接到该事实表的外键)。
如果采用后一种方法,由 Essbase Integration Services Console 为您添加维表,几秒钟后系统将提示您接受自动检测到的维,如以下屏幕截图所示:
单击 OK 接受这些维表,并查看更新过的 OLAP 模型,它将显示您的维表环境并联接至您的事实表,如以下屏幕截图所示:
注意,似乎已向 OLAP 模型添加两次 CUSTOMERS 表;事实上,其中一个表是 COUNTRIES 表,它联接到 CUSTOMERS 表,包含客户所处国家和地区的详细信息。
既然您已将维表添加到 OLAP 模型中,接下来要为每一维定义层次结构。要完成此任务,双击 PRODUCTS 维表,选择 Hierarchies 选项卡,然后单击 Add 按钮开始创建产品维层次结构。
使用对话框左侧的列列表,按指定顺序选择以下列:
- PROD_TOTAL
- PRODUCT_SUBCATEGORY_DESC
- PROD_NAME
Hierarchy 对话框将如以下屏幕截图所示:
以这种方式创建层次结构将告知 Hyperion Essbase Integration Services,OLAP 模型中的 PROD_NAME 列已经聚合到 PROD_CATEGORY_DESC 列,然后 PROD_CATEGORY_DESC 列再聚合到 PROD_TOTAL 列。
在我们的示例数据中,PROD_NAME 列包含一些字符(双引号),它们不是有效的 Hyperion Essbase 维成员名称。要解决此问题,选择 PROD_NAME 列,然后单击 Transform 按钮。
现在,您使用 Transform. 函数用值 Inch 替换产品名中出现的所有双引号。要完成此任务,在 Transform. 对话框中,选择 Replace 选项卡,并使用对话框中的 Search for 和 Replace All Occurrences 域替换所有出现的双引号。
单击 Add to List 按钮将这一步添加到构建指令。
另一种使用产品名和客户名作为维成员名称的方法是使用其 ID,并将名称置于维成员别名中。别名没有与维成员名称一样的长度和字符限制,可以在创建 OLAP 元数据架构时定义。请参见 Hyperion Essbase 文档获取更多详细信息。
现在创建 TIMES、CHANNELS、PROMOTIONS 和 CUSTOMER 维表的层次结构,创建如下所示的层次结构:
维名称 | 层次结构 |
PRODUCTS | PROD_NAME > PROD_CATEGORY_DESC > PROD_TOTAL |
TIMES | TIME_ID > CALENDAR_MONTH_NAME > CALENDAR_QUARTER_DESC > CALENDAR_YEAR |
CHANNELS | CHANNEL_DESC > CHANNEL_CLASS > CHANNEL_TOTAL |
PROMOTIONS | PROMO_NAME > PROMO_SUBCATEGORY > PROMO_TOTAL |
CUSTOMERS | CUST_ID > CUST_CITY > COUNTRY_NAME > COUNTRY_REGION > COUNTRY_TOTAL |
最后,双击 TIMES 维表并将维类型更改为 Time,如以下屏幕截图所示。在数据库中创建一个 Time 维后,您就能够执行时间序列计算,尽管您在本例中不会使用该特性,但定义 Time 维以备将来使用是一个很好的作法。
使用应用程序菜单中的 File -> Verify 选项检查模型的有效性,如果是有效的,则选择 File -> Save 并保存您的 OLAP 模型。
派生元数据架构
现在您的 OLAP 模型已经完成,您可以使用它派生 OLAP 元数据架构。
要完成此任务,关闭 OLAP 模型(如果仍处于打开状态),从 Hyperion Essbase Integration Services 应用程序菜单中选择 File -> New。然后如前面一样,将出现 Hyperion Essbase Integration Services 欢迎菜单;这次单击 OLAP Metaoutline 图标。从下拉列表中选择您刚创建的 OLAP 模型,然后单击 Open 按钮,如以下屏幕截图所示:
当系统提示时,选择连接到 SH 模式的 ODBC 数据源,输入连接详细信息,然后单击 OK 继续。
当 Essbase Integration Services Console 这次打开后,将对它进行配置,使您能够创建 OLAP 元数据架构。如果 Intelligent Help 特性未显示,使用应用程序工具栏打开它。Essbase Integration Services Console 应如以下屏幕截图所示:
您现在将使用 Intelligent Help 特性来帮助您创建元数据架构。
找到 Intelligent Help 面板中的 Dimension and Members 按钮,单击它。在随后出现的 Dimension and Members 帮助步骤列表中,找到 Create Standard Dimensions Automatically 并单击它。然后在显示上下文帮助文本时,找到 autodetect 链接并单击它,这将启动从 OLAP 模型自动派生元数据架构维的过程。
Essbase Integration Services Console 然后将向您显示您 OLAP 模型中所有层次结构的列表。单击 Select All 按钮选择所有层次结构,然后单击 Create 按钮创建元数据架构维。
Essbase Integration Services Console 右侧底部显示的新元数据架构应如以下屏幕截图所示:
现在您已经得到了标准维,最后一步是在元数据架构中创建 Accounts 维(您在上一步中未创建它)。
要完成此任务,将 Accounts 维项从左侧面板拖放到元数据架构详细信息中(就在列表中最后一个维下方),然后将 AMOUNT_SOLD 和 QUANTITY_SOLD 列从事实表拖放到这一新维中。
使用 File -> Verify 检查元数据架构是否效(您应当收到“The metaoutline is valid for aggregate storage”消息),然后使用 File -> Save 将元数据架构保存到 Hyperion Essbase Integration Services 信息库。
最后,您可以设置 Hyperion Essbase 数据库的存储模式。要完成此任务,右键单击 Essbase Integration Services Console 右侧面板中的 SH Metaoutline 对象,然后选择 Properties。使用 Properties 对话框,选择 Data Storage Model 选项卡,并选择 Block Storage 作为存储模型,如以下屏幕截图所示。
现在您已经有了 OLAP 模型和 OLAP 元数据架构并已选择了存储模型,您可以使用它们来定义并加载您的 Hyperion Essbase 数据库。要开始此过程,从应用程序菜单中选择 Outline -> Member and Data Load 将显示“Member and Data Load”对话框。
如果它尚未出现,Hyperion Essbase Integration Services 可以为您创建 Hyperion Essbase 应用程序和数据库:在对话框的 Essbase Name 部分中输入 Sales 作为应用程序名称,输入 Sales 作为数据库名称。接下来,在 Calc Scripts 部分中选择 Use Default Calc Script,这可以确保 Hyperion Essbase Integration Services 不仅将细节级数据加载到您的 Hyperion Essbase 数据库中,并且对其中的数据进行聚合,以使值出现在多维数据集的所有级别上。
单击 Next,然后单击 Finish,即刻开始构建数据库。遵循“Member and Data Load”进度窗口中的数据库构建进度,如以下屏幕截图所示:
检查在加载期间没有拒绝任何记录,并且加载了 57,906 个维成员和 916,782 条事实表记录。如果发现有记录被拒绝,可能因为您没有在 Hierarchy 编辑器中使用 Transform. 函数删除 PROD_NAME 列中的双引号,或者因为您在层次结构中选择了不同的或其他的表列,这可能会对唯一的成员架构造成一些问题,因为列值在所有表中并不唯一。如果出现问题,返回解决问题,再次从应用程序菜单中运行“Member and Data Load”任务。
成功构建 Hyperion Essbase 数据库后,您可以启动 Essbase Administration Services Console,查看 Hyperion Essbase Integration Services 刚为您创建的数据库。
要查看您的 Hyperion Essbase 数据库的架构,找到 Sales 数据库并双击 Outline 项。您现在可以查看数据库架构,以及您使用 Hyperion Essbase Integration Services 加入您定义的层次结构中的维成员。
您也可使用 Essbase Administration Services Console 预览数据库中的数据。要完成此任务,右键单击您的数据库并选择 Preview Data。双击维标题可以查看数据库中的数据。
如果您发现数据库中的某些或所有数据丢失,检查您在准备数据库时执行计算步骤期间是否磁盘空间不足,如果执行计算时 Hyperion Essbase Integration Services 用尽了磁盘空间,它将在那个时间点停止,不再对部分或整个数据库进行计算,且不报告错误。如果发生这种情况,先释放所需的空间(经全面计算,数据库大约需要 1.8GB 的磁盘空间),或者从 SH.SALES 表中删除一些行再使用较小的数据集重新加载。
示例 2:集成 Hyperion Essbase 与 Oracle 业务智能套件企业版
如果您已经安装了 Oracle 业务智能套件企业版,您可能希望将 Hyperion Essbase 数据库中的数据包括在您的公共企业信息模型中。要完成此任务,确保您使用的是 Oracle 业务智能套件企业版 10.1.3.3.2 或更高版本,且它与安装了 Hyperion Essbase 数据库的服务器之间有网络连接。
您需要先向您的数据库架构中添加一些更具描述性的信息(这些信息是数据库元数据导入过程所需要的),然后才能使用 Oracle 业务智能套件企业版提供 Hyperion Essbase 数据库的报表。要添加这些元数据,打开您的数据库架构,显示数据库维列表。右键单击击 Channel 维,从菜单中选择 Generations…。
您现在要为该维中的生成项定义名称,渠道维中的首个生成项是最上面的总计层,第二个生成项为渠道类,等等。然后由 Oracle Business Intelligence Administration 工具读取这些生成项的名称,用于为物理数据库导入过程中创建的对应维级别提供名称。
从生成的第 2 级开始,将该生成项命名为“All Channels”,然后将第生成 3 级命名为“Channel Class”,最后将生成的第 4 级命名为“Channel”。
单击 OK 保存生成项名称,然后按以下准则为模型中的其他维创建对应的生成项名称:
Generation | Channel | Promotions | Products | Customer | Time |
2 | All Channels | All Promotions | All Products | All Customers | Yr |
3 | Channel Class | Promo Subcategory | Product Category | Region | Qtr |
4 | Channel | Promotion | Product | Country | Mth |
5 |
|
|
| City | Dy |
|
|
|
| Customer |
|
现在您已经准备好将 Hyperion Essbase 数据库元数据导入 Oracle 业务智能套件企业版的元数据层中。
启动 Oracle Business Intelligence Administration,并连接至您的信息库。在应用程序菜单中,选择 File -> Import -> From Multidimensional… 使用“Import from Multi-dimensional”对话框,输入 Hyperion Essbase 服务器的连接详细信息。
成功连接到 Hyperion Essbase 服务器之后,系统将显示可用数据库列表。找到 Sales 数据库,单击 Import 开始导入数据库元数据。
导入完成后,单击 Close 关闭对话框,然后检查 Physical 区域查看导入的数据库。维和量度连同您刚创建层次结构和生成项名称,都已成功导入到您的公共企业信息模型中。
现在您已经将多维数据集元数据导入到了语义模型物理层,您可以使用物理模型创建逻辑模型。
要完成此任务,选择包含您的物理模型的文件夹,然后将它拖拉到语义模型的逻辑区域中。Administration 工具然后将自动创建对应的逻辑模型,该模型连同逻辑表、联接、维和层次结构一起表示您的 Hyperion Essbase 多维数据库的关系版本。
最后,将 Sales 逻辑模型拖放到您的表示层,以创建对应的表示模型。您可以删除每个表示表中的 Gen1 逻辑列,因为它们与内部架构结构相关,不应由最终用户查询。注意,如果表示模型文件夹的名称与生成的事实表名称冲突,您可能需要对表示模型文件夹进行重命名。
现在,在您签入并保存了对您的信息库的更改后,您将能使用 Oracle 业务智能套件企业版来查询您的 Hyperion Essbase 多维数据集,以及您的语义模型中的所有其他关系数据源和多维数据源。
结论
在本文中,您了解了 Hyperion Essbase 及其在 Oracle 的业务智能基础中和更大范围的 Oracle 融合中间件中所扮演的角色。您使用从 Sales History 示例模式中获得的数据创建了一个简单的 Hyperion Essbase 数据库,然后将其集成到 Oracle 业务智能套件企业版语义模型中。
Oracle Hyperion Essbase - System 9 是一项具悠久历史、拥有活跃的开发人员网络的技术,您可以在 OTN Essbase 论坛上或世界各地的用户组活动中结识其中许多开发人员。现在您已经可以创建简单的数据库,请用一些时间来看看在线文档,了解这一世界级的分析服务器的其他一些特性。
http://www.oracle.com/technology/global/cn/pub/articles/rittman-essbase.html
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/1384/viewspace-430039/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/1384/viewspace-430039/