本文是几年前作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专家了。数据库
联机分析处理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个小块,这些小块就是单元格。如暗色单元格,是由成员组合(一月,日用品,张大明)构成。3d
在三个维度中,日期维的叶成员有3个,支出维的叶成员有2个,家庭成员维的叶成员有2个。则36个单元格中,有3 × 2 × 2 = 12个是叶成员组合单元格。相似单一维度成员合并方法,非叶单元格可沿维度层次,由叶单元格合并而得。例如维度成员组合(一月,日用品,张大明),由(一月,衣物,张大明)和(一月,洗涤,张大明)两个单元格汇总。orm
EPM系统按产品可建立不一样类型的应用程序,Essbase的应用程序是多维数据库的集合,即每一个应用程序下可包含若干个多维数据库,每一个数据库有独立的维度模型和数据存储。blog
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相关的工具主要有: