1. 开篇序

本文是几年前做Hyperion Planning项目时写的,后来陆陆续续有些补充。本来打算将整个EPM写一系列的教程,但HFM写到1/3就没动力了。不过至少Essbase这部分是完整的。

Essbase主要是作为Planning后端数据库使用。Planning的技术难点在于Essbase,所以搞Planning深入下去就是在搞Essbase;反过来说,熟悉了Essbase,上手Planning就很简单,无非是在Essbase基础上加了Form、Process Management等功能,再学学Driver-based Planning、Rolling Forcasting等知识,就算是Planning专家了。

2. OLAP概念

联机分析处理OLAP通常是以多维的形式对数据进行钻取、汇总、切片、旋转等操作,以满足多层次、多角度数据分析的过程。OLAP包括两部分——提供用户多维操作的前端和支持多维分析的后端数据库。多维数据库,既可以是将数据以星形结构组织的RDBMS,也可以是Essbase这种专门的多维数据库。

Essbase的维度是value-based dimension,即树型结构,维度中的成员按照层次组织,形成父子级关系,其中的每个成员可包含若干个子成员。最底层的成员没有子成员,称作叶成员(Leaf Member)或基成员(Base Member),而最顶级成员是根成员。如下图的帐户维,将家庭收支项按层级关联起来形成树型结构。

维度的层级结构决定了数据沿向上合并(consolidation)和向下分配(allocation)的计算路径,如下图。

上面是单个维度的结构后,然后再来谈论多维的情况。多维数据库,顾名思义是由多个维度组成,各维度成员的组合是数据存储的最小单位,称为单元格(cell)。作为例子,假定一个家庭记账的多维数据库,由如下三个维度组成。为了便于说明,这里的维度仅截取了部分成员。

  • 日期维,成员包括一季度、一月、二月、三月,其中一季度是父成员。
  • 支出帐户维,成员包括日用品、衣物、洗涤,其中日用品是父成员。
  • 家庭成员维,成员包括家庭、张大明、王翠花,其中家庭是父成员。

在这个多维数据库中,日期维有4个成员,支出帐户维有3个成员,家庭成员维有3个成员。那么一共有4 × 3 × 3 = 36中维度成员组合,即有36个单元格,意味着这个数据库仅能存储36个数值。将这个数据库形象的描绘成下图的三维立方体,三个维度是立方体的轴。图中以维度成员将立方体进行分割,形成了36个小块,这些小块就是单元格。如暗色单元格,是由成员组合(一月,日用品,张大明)构成。

在三个维度中,日期维的叶成员有3个,支出维的叶成员有2个,家庭成员维的叶成员有2个。则36个单元格中,有3 × 2 × 2 = 12个是叶成员组合单元格。类似单一维度成员合并方法,非叶单元格可沿维度层次,由叶单元格合并而得。例如维度成员组合(一月,日用品,张大明),由(一月,衣物,张大明)和(一月,洗涤,张大明)两个单元格汇总。

3. Essbase概念

EPM系统按产品可创建不同类型的应用程序,Essbase的应用程序是多维数据库的集合,即每个应用程序下可包含若干个多维数据库,每个数据库有独立的维度模型和数据存储。

Essbase将数据库的维度模型称为大纲(Outline),多维数据库的开发工作很大部分是大纲开发,大纲开发主要是创建维度成员和定义计算方法。

Essbase中以“代(Generation)”和“级(Level)”来标注维度层次,根成员被标注为1代,其下一层被标注为2代,依次向下代数逐渐增大;反过来,叶成员被标注为0级,其上一层被标注为1级,依次向上级数逐渐增大。以下图的维度层次为例,成员名称前的G表示代数,L表示级数。

维度的成员之间存在子代(Children)、后代(Descendants)、同级(Siblings)、父级(Parent)、祖级(Ancestors)共5种关系,说明如下。

系统架构上,Essbase是由多个组件组成。下图将Essbase的组件分成三部分,左边是Essbase Server,它是多维数据库服务,Essbase应用程序会部署到Essbase Server;右边是客户端工具,含OLAP前端应用工具和Essbase开发管理工具;在Essbase Server和客户端工具之间的是中间层服务,负责双方之间的通讯。

此外跟Essbase相关的工具主要有:

  • Hyperion Planning — Planning使用Essbase作为数据库存储和计算数据。
  • Hyperion Profitability and Cost Management — 跟Planning类似,HPCM使用Essbase BSO做分摊计算,使用Essbase ASO做报告。
  • Essbase Analytics Link for Hyperion Financial Management — 可以将HFM数据导到Essbase中做分析。
  • Hyperion Smart View — Oracle BI和EPM的客户端,跟Office整合,能直接连接Essbase数据库。
  • Hyperion Visual Explorer — Tableau的OEM版本,在以前版本中会随Smart View一起安装,同样支持Essbase数据源。
  • Oracle Crystal Ball — 蒙特卡罗模拟工具,新版本跟EPM整合,可以使用Essbase内部的计算代替Excel上的计算公式做模拟。
  • Oracle BIEE — Oracle的BI产品,可使用Essbase作为数据源。
  • Hyperion Essbase Spreadsheet Add-in — Office插件,已被Smart View取代。

Oracle Essbase入门系列(一)的更多相关文章

  1. Oracle Essbase入门系列(二)

    本篇开始会一个三口之家的家庭财务数据库为例,讲述Essbase的功能和开发.为了说明EPM应用程序的管理和开发过程,会绕一些弯路,不使用EAS,而尽量用EPMA. 创建应用程序 首先登陆到Worksp ...

  2. Oracle Essbase入门系列(四)

    成员存储类型 除了大纲计算,维度成员的另一项重要属性是存储类型,存储类型决定维度成员相关单元格的物理存储方式.在维库中编辑成员的[Data Storage]属性,下拉菜单中可选的5种,再加上Share ...

  3. Oracle Essbase入门系列(三)

    数据库计算 Essbase中单元格的数据可以是外部输入或计算而得,单元格因而分为输入单元格和计算单元格.计算单元格的计算方法可以通过大纲中维度成员的合并计算符和公式脚本定义,此称为大纲计算定义. 例1 ...

  4. 6. oracle学习入门系列之六 模式

    oracle学习入门系列之六 模式 上篇咱们学习记录了ORACLE数据库中的数据库结构.内存结构和进程等.篇幅 蛤蟆感觉偏多了.这次要休整下,每次笔记不宜太多,不然与书籍有何差别. 我们要保证的是每次 ...

  5. [转]oracle学习入门系列之五内存结构、数据库结构、进程

    原文地址:http://www.2cto.com/database/201505/399285.html 1 Oracle数据库结构 关于这个话题,网上一搜绝对一大把,更别提书籍上出现的了,还有很多大 ...

  6. Jenkins入门系列之——02第二章 Jenkins安装与配置

    2014-12-08:已不再担任SCM和CI的职位,Jenkins的文章如无必要不会再维护. 写的我想吐血,累死了. 网页看着不爽的,自己去下载PDF.有问题请留言! Jenkins入门系列之——03 ...

  7. 7.oracle学习门户系列七---网络管理和配置

    oracle学习门户系列七 网络管理和配置 们学习了模式和用户.包含模式定义以及模式的作用. 这篇我么来看下ORACLE数据库中的网络管理和配置.只是这篇好像和上篇没有继承啊.这怎么看? Ok,事实上 ...

  8. 【JAVA零基础入门系列】Day1 开发环境搭建

    [JAVA零基础入门系列](已完结)导航目录 Day1 开发环境搭建 Day2 Java集成开发环境IDEA Day3 Java基本数据类型 Day4 变量与常量 Day5 Java中的运算符 Day ...

  9. ABP入门系列(21)——切换MySQL数据库

    ABP入门系列目录--学习Abp框架之实操演练 源码路径:Github-LearningMpaAbp 1. 引言 Abp支持MySql已经不是什么新鲜事了,但按照官方文档:Entity Framewo ...

随机推荐

  1. BFS 或 同余模定理(poj 1426)

    题目:Find The Multiple 题意:求给出的数的倍数,该倍数是只由 1与 0构成的10进制数. 思路:nonzero multiple  非零倍数  啊. 英语弱到爆炸,理解不了题意... ...

  2. 无向图最小生成树(prim算法)

    普里姆算法(Prim算法),图论中的一种算法,可在加权连通图里搜索最小生成树.意即由此算法搜索到的边子集所构成的树中,不但包括了连通图里的所有顶点,且其所有边的权值之和亦为最小.该算法于1930年由捷 ...

  3. JS-定时器管理实例

    /** * Created by 12461 on 2016/11/6. */window.onload = function () { var oBtn1 = document.getElement ...

  4. Intellij IDEA 根据数据库自动生成pojo和hbm

    新建一个项目,每次写hibernate部分,就觉得pojo和hbm.xml部分很蛋疼.今天搜索了半天,终于知道如何根据数据库自动生成了. Intellij IDEA14创建maven时并不能勾选各种支 ...

  5. 面向对象、类与对象、成员与局部变量、封装、private、构造函数、this、static、extends、super、final、abstract、interface、多态、内部类、异常【5】

    若有不正之处,请多多谅解并欢迎批评指正,不甚感激. 请尊重作者劳动成果: 本文原创作者:pipi-changing本文原创出处:http://www.cnblogs.com/pipi-changing ...

  6. 【实战】初识ListView及提高效率

    简介: ListView是手机上最常用的控件之一,几乎所有的程序都会用到,手机屏幕空间有限,当需要显示大量数据的时候,就需要借助ListView来实现,允许用户通过手指上下滑动的方式将屏幕外的数据滚动 ...

  7. 01:Geoserver发布shapfile,中文字段乱码问题

    软件环境:Geoserver 2.1.0 UDig 1.2.1 shapfile文件结构:FID                  地物名称      变化图斑                     ...

  8. MVC项目创建与项目结构介绍

    一.创建MVC项目 打开VS202,点击:文件—>新建—>项目—>Web—>Asp.Net MVC 4 Web应用程序 填好项目名称.解决方案名称和文件存放位置,然后点击确定, ...

  9. static, readonly, const

    static Use the static modifier to declare a static member, which belongs to the type itself rather t ...

  10. 导入module

    1.http://blog.csdn.net/cryssdut/article/details/50357876 2.直接把lib复制黏贴到项目里,无法直接用:需要在 settings.gradle中 ...