Oracle Essbase入門系列(四)

2021-09-07 22:38:47 字數 2884 閱讀 7234

除了大綱計算,維度成員的另一項重要屬性是儲存型別,儲存型別決定維度成員相關單元格的物理儲存方式。在維庫中編輯成員的【data storage】屬性,下拉列表中可選的5種,再加上shared成員,一共6種儲存型別。

store儲存資料。當乙個單元格所有成員的儲存型別都是store時,單元格的資料會物理儲存。前面說明輸入單元格和計算單元格時,似乎存在這樣的印象——非0級和帶有成員公式的單元格都是不可輸入的,必須由子代成員合併或公式計算得到。其實不然,決定單元格是否「可輸入」是由儲存型別決定的。store型別的單元格都可輸入資料,只不過在執行了計算後被輸入資料會被計算結果覆蓋。

dynamiccalc動態計算。相關單元格不儲存資料,僅在查詢時即時計算。動態計算的成員必須定義計算方法,非0級成員可以通過子代成員合併,0級成員必須有成員公式。使用動態計算的目的,一是可以減少儲存空間,二是可以阻止在單元格上輸入資料。但如果查詢中包含有動態計算成員時,會延長查詢響應時間。

dynamiccalcandstore動態查詢和儲存。當第一次查詢或資料被標識為臟時,即時計算,計算結果會儲存下來,後續查詢中就可以使用儲存的資料。相比起dynamiccalc,dynamiccalcandstore平衡了查詢效能和儲存空間。

labelonly僅標籤。既不計算,也不儲存資料。僅在層次中作為分組或分級的標籤存在。查詢labelonly成員時,通常顯示第乙個子成員的資料。

shared共享成員。共享成員是對同維度中同名成員的引用,其資料來自於被引用成員。如果在維度中多個地方使用同一成員,可以使用共享成員。例如,account維度中收入和支出在淨收入的成員公式中被引用,可以使用共享成員來實現同樣的計算。如圖設計大綱,淨收入下的共享成員引用了同維度中的支出與收入,按照合併計算符,可以代替成員公式的計算方法。在維庫中要加入共享成員,可右擊某一成員,在右鍵選單中選【插入共享成員】>【作為子代】或【作為同級】。

nevershare不共享資料。除了使用shared型別來顯示的定義共享成員外,essbase中還有些成員是隱式共享。參考圖3-48的維度結構,home成員值實際上等於張大明成員值。essbase能識別這種關係,並自動將張大明作為home的共享成員,此稱為隱式共享。為了避免隱式共享,可以將home的儲存型別置為nevershare。

張大明家需要制定2023年的家庭預算,在year維度上,只需做月度收支計畫,無需細化到每一日;home維度上,全家的預算分配到個人時,保留一部分機動資金。還需要定期核對預計收支目標和實際收支間的差異,實際支出應該小於目標支出,實際收入應該大於目標收入。如表是1月的預算與實際收支資料。

此例要求資料庫可在year、home、account維度的非0級成員上輸入資料,所以首先確保表中相關維度成員的儲存型別必須是store。

由於機動資金,home成員的支出是要大於子成員支出的總和。而且,要求在year維度中,就算在日級成員中誤輸入了資料,也不會影響到月級成員的資料。所以在計算時,非0級成員的輸入資料不能被子代成員的合併計算結果覆蓋。為此將scenario維度下預算的合併計算符設為「^」,則預算相關的所有單元格都不使用合併計算符計算。

接著來看表中差異項的定義,差異是實際和預算的差值,但支出和收入有不同的計算方向。對支出來說,實際小於預算為優,差異等於預算減實際;對收入來說,實際大於預算為優,差異等於實際減預算。這種計算方式可使用費用報告計算(expense reporting)功能,費用報告是除了時間平衡外,account型別維度另乙個特有的計算屬性。通過將account維度的成員標註為費用或非費用型別,可控制在@var和@varper函式中的計算方向。

在維庫中將支出及其子成員的【expense reporting】屬性設定為expense;收入及其子成員為預設的nonexpense。修改差異的儲存型別設為dynamiccalc,成員公式設為:

至此,homefinancial資料庫已基本滿足了例子中提出的需求。將這兩節中的修改彙總,資料庫模型最終的結構如下:

維度結構:

成員公式:

預設計算指令碼:

在維庫中檢查homefinancial應用程式是否都如上修改,如無問題部署到essbase server。epma目前還無法編輯essbase計算指令碼,因此部署後再修改預設計算指令碼。

(6)入門 HTTP入門

http入門 80埠服務http協議 curl s v h frank s 不要顯示進度條 v顯示請求和相應 如果沒有只顯示響應 h frank 新增請求頭 get http 1.1 獲取根目錄,使用的協議是http 1.1 host www.baidu.com 網域名稱 user agent cu...

Hibernate入門 入門案例

4.1 資料庫建立表 create table cst customer cust id bigint 32 not null auto increment comment 客戶編號 主鍵 cust name varchar 32 not null comment 客戶名稱 公司名稱 cust so...

RocketMq入門 入門示例

網上眾說紛紜。有的說啟動命令不對,有的說rocketmq預設不允許開發者私自建立topic。最後手動建立topic。但是發現消費不了訊息,很奇怪。今天我又重新安裝了一遍rocketmq。測試了一下發現還可以。上圖是rocketmq的架構圖。我們必須要對上述的一些組建或者結點做一些說明解釋 produ...