本文是幾年前作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相關的工具主要有: