本篇開始會一個三口之家的家庭財務數據庫爲例,講述Essbase的功能和開發。爲了說明EPM應用程序的管理和開發過程,會繞一些彎路,不使用EAS,而儘可能用EPMA。數據庫
首先登錄到Workspace,在左上角菜單中選擇【導航】>【管理】>【應用程序庫】。安全
應用程序庫是EPMA的一部分,經過它能夠管理EPM和Essbase應用程序。打開應用程序庫後,在Workspace菜單中選【文件】>【新建】>【應用程序】,接着會出現應用程序建立嚮導。服務器
在應用程序建立嚮導的第一步,選擇應用程序類型爲【Essbase (BSO)】,選中【Unicode】以支持中文,而後給應用程序和數據庫命名。架構
建立一個名爲「HomeFinancial」的應用程序,每一年的家庭財務數據做爲一個數據庫,2013年的數據庫命名爲y2013。函數
第二步須要選擇數據庫中包含的維度類型,按下表建立4個維度,維度名稱同時也是1代成員名稱,在Essbase中,Time和Account是兩個比較特殊的維度。Time維度可以使用時間相關的函數和動態時間序列;Account可以使用時間平衡和開支報告屬性。每一個數據庫中僅能有一個Time和一個Account維度。工具
下一步是定義元數據,包括維度結構、計算方法、成員屬性等。在部署後,EPMA中定義的元數據會成爲Essbase的大綱。此步驟的界面分紅三個部分,左面列出的是樹型的維度結構,右面顯示維度成員的屬性,下面顯示的是系統消息。oop
在樹型維度結構部分,最頂級的節點表明數據庫;其下一級是各維度的1代成員,同時也表明整個維度;1代成員下是維度的成員。選擇樹型結構中的節點,右方會顯示相關屬性,修改屬性後別忘了點擊上方的保存鍵。開發工具
在樹型結構中,選擇各維度的1代成員,以下表修改維度的Dimension Storage Type和Dimension Sort Order兩個屬性。Dimension Storage Type定義爲存儲類型是稀疏(Sparse)仍是密集(Dense);Dimension Sort Order定義部署後維度在大綱中排序順序。這兩個屬性會決定數據庫的物理結構和計算順序,後面會討論到。spa
而後在樹型結構中,右擊維度成員顯示菜單,菜單中能夠進行刪除、重命名、添加成員、排序等操做。3d
鼠標拖動某個成員可改變其在維度中的位置。
在維度模型結構中添加成員,建立以下圖的維度結構。
G1. Account
G2. 支出
G3. 日用品
G3. 交通
G3. 電器
G3. 教育
G3. 飲食
G3. 公共事業費
G4. 電單價
G4. 電用量
G4. 水單價
G4. 水用量
G3. 醫療
G2. 收入
G3. 工資
G3. 其餘收入
G2. 現金流
G3. 期初現金
G3. 淨收入
G3. 調整
G3. 期末現金
G1. Home
G2. 張大明
G2. 王翠花
G2. 張小明
G1. Scenario
G2. 預算
G2. 實際
G2. 差別
G1. Year
G2. Q1
G3. 1月
G4. 1月1號
G4. 1月2號
在完成數據模型編輯後,點擊【驗證】,下方的消息框內會顯示驗證信息。若沒有出現任何錯誤或警告信息,點擊【完成】結束應用程序編輯。
而後在應用程序庫中就可看到多出一個名爲「HomeFinancial」的應用程序圖標。
至此,已經介紹了EPMA應用程序庫和維度庫的使用。EPMA是從EPM 9.3版開始引入的模塊,它包括應用程序庫、維庫、數據同步、庫控制做業臺等多個工具,以實現對EPM各產品應用程序進行集中式的管理。經過EPMA建立的應用程序稱爲EPMA應用程序,而使用傳統方法建立的應用程序稱爲標準應用程序。EPMA中提供了將標準應用程序轉換爲EPMA應用程序的工具,在Workspace菜單中可找到,轉換的過程是不可逆的。EPMA應用程序的部署過程當中用的的工具以下圖。
如今,咱們已經經過EPMA的應用程序庫建立了一個Essbase應用程序。不一樣於EAS Console直接在Essbase Server中建立標準應用程序,EPMA應用程序僅僅是保存在EPMA中的元數據而已,它尚未部署到Essbase Server中。下面會經過完善並部署此應用程序,來介紹EPMA的幾個重要工具。
回顧上一節建立的HomeFinancial數據模型,Time維度並無包含全部的日期項,一年365天都須要手工添加會是很大的工做量,咱們須要經過關係型數據庫中批量的導入維度成員。現實應用中從外部系統導入維度和數據是常有的狀況,例如從會計系統導入會計科目。爲此,EPMA提供了接口表,配合ETL工具可方便的將外部數據導入。
接口表是由EPMA在關係型數據庫中自動建立的一組數據表,支持Oracle Database、Microsoft SQL Server、IBM DB2等主流數據庫。首先,鏈接到安裝EPM是用到的Oracle數據庫,執行下面語句建立一個新賬戶,用於存儲接口表。
CREATE USER EPMA_INTFC IDENTIFIED BY password; GRANT "RESOURCE" TO EPMA_INTFC; GRANT "CONNECT" TO EPMA_INTFC; GRANT UNLIMITED TABLESPACE TO EPMA_INTFC;
而後在Workspace菜單中選擇【導航】>【管理】>【配置接口數據源】。打開接口數據源後,在菜單中選【文件】>【新建】>【接口數據源】,在接口數據源建立對話框中,輸入接口表賬戶鏈接信息。
在下一步中,給接口數據源命名,並選中【Create Tables】,點擊【完成】。EPMA會在給定的數據庫賬戶中創建接口表。
鏈接到數據庫,會發現EPMA_INTFC帳戶下建立了若干的數據表。仔細觀察這些表的命名規則,以HS開頭的表分爲4類,這些數據表都是須要寫入維度信息,而後導入到EPMA維庫裏;而以IM開頭的數據表是系統表。數據表的用途以下表,具體表結構和每一個字段的定義,參考EPMA文檔。
表名 | 用途 |
HS_Dimension_Member | 維度成員和成員屬性 |
HS_Dimension_Hierarchy | 維度父子層次結構 |
HS_Dimension_PropertyArray | 維度成員屬性 |
HS_Dimension_Property | 維度屬性 |
IM_Dimension | 登記接口表,自建的接口表需在此表中登記 |
IM_Load_Info | 經過Load ID可篩選導入的數據批次 |
IM_Dimension_Association | 定義維度表間的關聯關係 |
在數據庫中執行如下SQL語句,將維度成員數據寫入到接口表HS_TIME_HIERARCHY中。
declare v_date date := to_date('130101','RRMMDD'); v_order number := 0; v_month_str varchar(3 char); v_date_str varchar(6 char); begin delete from EPMA_INTFC.HS_TIME_HIERARCHY; for indx in 1..4 loop v_order := v_order + 1; insert into EPMA_INTFC.HS_TIME_HIERARCHY(parent,child,isprimary,sortorder) values('Year','Q' || to_char(indx),1,v_order); end loop; for indx in 1..12 loop v_order := v_order + 1; insert into EPMA_INTFC.HS_TIME_HIERARCHY(parent,child,isprimary,sortorder) values('Q' || to_char(ceil(indx / 3)),to_char(indx) || '月',1,v_order); end loop; for indx in 1..365 loop v_order := v_order + 1; v_month_str := ltrim(to_char(v_date,'MM'),'0') || '月'; v_date_str := v_month_str || ltrim(to_char(v_date,'DD'),'0') || '日'; insert into EPMA_INTFC.HS_TIME_HIERARCHY(parent,child,isprimary,sortorder) values(v_month_str, v_date_str, 1,v_order); v_date := v_date + 1; end loop; commit; end;
執行PL/SQL後,HS_TIME_HIERARCHY表裏應該有以下數據。
接口表數據準備好後,打開EPMA維庫。打開的方法有兩種,一種是在應用程序庫中雙擊應用程序圖標;另外一種方法是經過Workspace菜單【導航】>【管理】>【維庫】,而後在菜單【文件】>【編輯應用程序】中選擇應用程序。維庫從左到右分紅三欄,最左邊是共享維度庫,中間是應用程序維度結構,右邊是所選成員的屬性。
維庫界面相似於在應用程序建立嚮導中維度編輯界面,惟一不一樣的是多出了共享維度庫。共享維度顧名思義是能夠由多個應用程序共享使用的,企業中一些經常使用維度,如組織架構、會計科目等會被多個應用程序使用,使用共享維首先避免了重複建立維度的工做量,其次避免應用程序間出現的數據不一致問題。這一律念與主數據管理系統類似,事實上Hyperion在2005年經過收購Razza得到了一套主數據管理系統Hyperion Data Relationship Management(簡稱DRM),如今已成爲Oracle主數據管理解決方案的一部分。EPMA也支持從DRM導入維度。
與共享爲對應的是本地維,本地維是隻屬於某個應用程序的維度。應用程序的本地維能夠複製到共享維度庫,也能夠將共享維複製到應用程序。共享維度庫是EPMA應用程序相對標準應用程序的主要優點之一。
在維庫中,點擊Workspace菜單【文件】>【導入】>【建立配置文件】,選擇由本地接口庫導入到HomeFinancial應用程序,並給配置文件命名。從導入類型選項可知,除了接口表外,還支持從平面文件和DRM導入。EPMA還提供了生成平面文件的桌面客戶端工具File Generator,安裝EPM後能夠在開始菜單中找到。
在維度映射配置中,選擇只導入Time維度,處理類型選擇【合併爲主要成員】,從新排列類型選擇【合併至底層】,選上從新排列現有成員選擇框。
將導入配置文件保存後,在菜單中選【文件】>【導入】>【導入維】,選中剛建立的導入配置文件。此處,若在IM_Load_Info接口表中定義了Load ID,可選擇若干接口加載ID,以篩選導入的維度成員,不選擇Load ID則導入接口表中全部的成員。
點擊【導入】按鍵後,EPMA會建立做業在後臺執行導入工做,界面上會顯示對話框提示做業已提交。
對話框上給出了做業連接,點擊可打開做業控制檯顯示做業執行狀態。做業控制檯是EPMA的工具之一,使用它可查看EPMA各類做業的歷史記錄。做業控制檯可經過Workspace菜單【導航】>【管理】>【做業控制檯】打開。
做業執行成功後,在維庫中刷新應用程序結構,查看Time維度成員是否正確導入。順便說一句,除了經過EPMA接口表,Oracle Data Integrator、Essbase Studio、Essbase SQL Interface均可以直接向Essbase加載數據。
在部署HomeFinancial應用程序前,打開Essbase Administration Services Console(EAS Console),確認Essbase Sever是否開啓對Unicode的支持。EAS Console可經過連接http://<epm_server>:9000/easconsole打開,或從下載的EPM客戶端壓縮包中安裝。打開EAS Console首先顯示登錄信息,輸入EAS地址和帳號後登錄。
登錄後在左側的企業視圖中,右擊【Essbase服務器】,在菜單中選【添加Essbase服務器】。在對話框中,添加EAS本地Essbase Server加入。
在企業視圖中,展開添加的Essbase Server節點,能夠看到其中已有幾個安裝時自帶的樣例應用程序。每一個應用程序下都含有一個或多個多維數據庫,數據庫下是大綱、規則文件、分區、報表腳本等。在EAS Console中能夠進行應用程序管理、大綱編輯、維度和數據導入、計算腳本編寫等操做,能夠說EAS Console是功能最全、最經典的Essbase管理和開發工具。使用EPMA建立的數據庫部署到Essbase Server後,也能夠用EAS Console編輯。但EAS Console是直接修改Essbase Server中的數據庫,全部的修改都不會同步到EPMA中,因此EAS Console適用於編輯標準應用程序,最好不要修改EPMA應用程序。
鼠標右鍵點擊Essbase Server,菜單中選擇【編輯】>【屬性】,在安全性屬性裏,確保【建立Unicode模式的應用程序所需的權限】被選中,而後點擊【應用】。
回到EPMA中,打開應用程序庫。右擊HomeFinancial應用程序圖標,菜單中選【驗證】,而後在做業控制檯中查看驗證做業執行狀態。若驗證無問題,右擊應用程序選擇【部署】。部署過程一樣可經過做業控制檯監控。
部署結束後,在EAS Console中可看到HomeFinancial已加入到Essbase Server中。