資料儲存
一個 Essbase 維度中的一個成員與另一個維度中的一個成員的交集是資料值。以不同方式分割資料庫,可讓您根據成員關係來檢視資料。若要儲存和存取資料, Essbase 會使用區塊和索引。
附註:
此資訊僅適用於區塊儲存體 (BSO) 立方體,不適用於聚總儲存體 (ASO) 立方體。
Essbase 資料庫中的每個資料值都儲存在一個儲存格中。透過在每個標準維度上指定其座標來參照特定資料值。
附註:
Essbase 不會儲存屬性維度的資料。Essbase 會在使用者擷取資料時動態計算屬性維度資料。
例如圖 2-13 中顯示的簡化資料庫。此資料庫有三個維度:「帳戶」、「時間」和「案例」:
-
Accounts 維度有四個成員:Sales、COGS、Margin 和 Margin%。
-
「時間」維度有四季成員,而 Qtr1 有三個月成員
-
Scenario 維度有兩個子成員:預算值的預算和實際值的實際值。
圖 2-13 多維資料庫大綱

資料值
一個 Essbase 維度中成員的交集,另一個維度中的一個成員代表一個資料值。資料值是最小的資料片段。
以下範例有三個維度 (Accounts、Time 和 Scenario);因此,資料庫中的維度和資料值可以表示為立方體。
圖 2-14 三維資料庫

當您指定 Sales 時,您要指定包含 8 個 Sales 值的資料庫截塊,其中 Sales 與 Actual 和 Budget 交集。
圖 2-15 資料庫的銷售片段

劃分資料庫數量,以固定一個常數值的一個或多個維度,同時允許其他維度改變。
當您指定「實際銷售」時,您要指定包含四個「銷售」值 (其中「實際」與「銷售」相交) 的資料庫截塊。
圖 2-16 資料庫的實際銷售片段

資料值會儲存在資料庫中的一個儲存格中。若要參照多維資料庫中的特定資料值,請在每個維度上指定其成員。例如,時段 Sales、Jan、Actual 包含一個資料值。資料值也可以使用交叉維度運算子 (->) 來表示,例如「銷售」->「實際」->「一月」。
圖 2-17 銷售 -> 1 月 -> 實際資料值

資料區塊與索引系統
Essbase 使用兩種類型的內部結構來儲存和存取資料:資料區塊和索引系統。
Essbase 會為稀疏標準維度成員的每個唯一組合建立資料區塊 (假設稀疏維度成員組合至少有一個資料值存在)。資料區塊代表其稀疏維度成員組合的所有密集維度成員。
Essbase 會為每個資料區塊建立索引項目。索引代表稀疏標準維度成員的組合。它包含稀疏標準維度成員的每個唯一組合項目,其中至少有一個資料值存在。
例如,在圖 2-18 所示的 Sample.Basic 資料庫大綱中,「產品」和「市場」都是稀疏維度。
圖 2-18 Sample.Basic 資料庫的產品與市場維度

如果紐約的 Caffeine Free Cola 有資料, Essbase 會為 Caffeine Free Cola (100-30) -> New York 的稀疏成員組合建立資料區塊和索引項目。如果 Caffeine Free Cola 未在佛羅里達州銷售, Essbase 不會為稀疏成員組合建立資料區塊或索引項目:Caffeine Free Cola (100-30) -> Florida。
資料區塊 Caffeine Free Cola (100-30) -> New York 代表 Caffeine Free Cola (100-30) -> New York 的所有 Year、Measures 及 Scenario 維度。
每個唯一資料值都可以被視為存在於資料區塊的儲存格中。當 Essbase 搜尋資料值時,會使用索引來尋找適當的資料區塊。然後,在資料區塊中找出包含資料值的儲存格。索引項目提供資料區塊的指標。索引會有效率地處理稀疏資料,因為它只包含現有資料區塊的指標。
圖 2-19 顯示 Sample.Basic 資料庫之資料區塊的一部分。區塊的每個維度都代表 Sample.Basic 資料庫中的密集維度:Time、Measures 和 Scenario。Product 與 Market 稀疏維度的每個成員唯一組合都有資料區塊 (假設組合中至少有一個資料值存在)。
圖 2-19 Sample.Basic 資料庫之資料區塊的一部分

每個資料區塊都是一個多維陣列,包含一個固定、排序的位置,用於密集維度成員的每個可能組合。存取區塊中的儲存格不涉及循序或索引搜尋。搜尋幾乎是即時的,可達到最佳的擷取與計算速度。
Essbase 會根據資料庫大綱密集維度中成員的順序,排序資料區塊中的儲存格。
A (Dense)
a1
a2
B (Dense)
b1
b11
b12
b2
b21
b22
C (Dense)
c1
c2
c3
D (Sparse)
d1
d2
d21
d22
E (Sparse)
e1
e2
e3圖 2-20 中的區塊代表前一個資料庫大綱中稀疏成員 d22 和 e3 之組合內的三個密集維度。在 Essbase 中,跨維度運算子表示成員組合。跨維度運算子的符號為 ->,因此 d22 -> e3 代表 d22 與 e3 的區塊。A、b21 和 c3 的交集會寫入為 A -> b21 -> c3。
圖 2-20 代表 d22 密集維度的資料區塊 -> e3

Essbase 會為稀疏維度 D 與 E 之成員的每個唯一組合建立資料區塊 (假設組合中至少有一個資料值存在)。
資料區塊 (例如圖 2-20 中的區塊) 可能包含不包含資料值的儲存格。如果區塊中至少有一個資料值,便會建立資料區塊。Essbase 會壓縮磁碟上遺漏值的資料區塊,並在將區塊帶入記憶體時完全展開每個區塊。資料壓縮是選擇性的,但預設為啟用。
藉由仔細選取密集和稀疏標準維度,您可以確保資料區塊不包含多個空白儲存格,將磁碟儲存需求降到最低並提升效能。在 Essbase 中,空的儲存格稱為 #MISSING 資料。


