維度建構中的層代參考

佔用通用分支的 Essbase 維度成員位於同一層代中。第 1 代是維度名稱,每個較低層級都會遞增層代編號。從由上而下的來源建立維度時,請使用層代建置方法。如果來源資料包含空值,請使用處理產生空值建置方法。

由上而下的資料來源會從最高層次到最低層次從左到右組織。每筆記錄以最一般的資訊開始,並進展至最特定的資訊。新成員的名稱位於記錄結尾。使用由上而下的資料來源時,請使用層代參照建置方法。在規則檔案中,指定資料來源中每個欄位的層代編號與欄位類型。

Essbase 會根據維度內成員的階層位置,對維度內的成員進行編號。這些數字稱為產生參照。維度一律為層代 1。維度中相同分支的所有成員都稱為層代。相對於維度,層代會根據其位置由上而下編號;亦即相對於維度 1。

例如,如下圖所示,Product 維度為層代 1。產品有 100 個成員,其層代為 2。100 有成員,例如 100-10,其為層代 3。若要使用產生參照建置方法,請在規則檔案中指定產生參照號碼。

圖 14-1 世代


此圖說明層代參考編號,如影像前面的文字中所述。

假設您有一個包含 Product 維度的立方體。維度為第 1 代,因此 Product 為第 1 代。假設您要使用下列由上而下、以 Tab 字元分隔的資料檔案來建立 Product 維度:

500	500-10	500-10-10
500	500-10	500-10-20
500	500-20	500-20-12
500	500-20	500-20-15
500	500-20	500-20-20

通常,當最低層級成員由右至左排序時,您會使用層代建置方法來執行維度建置,如上所示。

您可以使用下列規則,使用層代參考來建立維度。規則會指定資料來源中每個欄位的產生號碼。除非您的來源資料包含空值 (針對該使用案例,請參閱下方的「以空白欄位處理」),否則您也必須在規則的維度特性中選取層代建置方法。

用於產生建置的規則檔案。欄位 1:產品,第 2 代具名類別。欄位 2:產品,第 3 代名為產品 SKU。欄位 3:產品,第 4 代指定促銷

Essbase 會從資料來源和規則建立下列階層:

圖 14-2 世代參考


此圖像顯示產生建置期間所建立的新成員。

處理空白欄位

當您從來源資料中的層代或層級參照建立維度時,可以選擇處理空值。空值處理會指定當 Essbase 在資料來源中遇到空白欄位時,應採取的動作。

附註:

空值處理選項僅適用於一般維度建置規則 (非以索引為基礎)。

如果未啟用空值處理, Essbase 會拒絕所有具有空值的記錄,並將錯誤寫入錯誤日誌。

若要啟用空值處理,請在建立新維度建置規則時,在維度特性中選取其中一個空值處理建置方法:「處理產生」為空值或「處理」層次為空值。


在新規則的維度特性中處理建置方法為空值

如果您使用程序產生空值建置方法,它會告知 Essbase 在處理來源資料中的產生參照時預期某些空值,以避免發生錯誤。

範例

對於此維度建置範例,假設您要將不規則 / 非對稱階層 (如下所示) 新增至 Sample Basic 的新 Channel 維度。


通道維度是層代 1。「所有通路」階層是第 2 代。第 3 代包含「間接」和「直接」成員。在第 4 代,間接具有通路 ID 作為下階。Direct 在第 4 代有「Outlet」、「Mall」和「Kiosk」地點成員,接著在第 5 代有通路 ID。間接管道 ID 位於第 4 代,而直接管道 ID 位於第 5 代,則使其成為不平衡 / 不規則的階層。

資料來源由上而下,表示較高的層次 (接近最上層維度成員) 會在每筆記錄中最先出現。因此,使用層代參考建置方法是合理的。不過,將需要空值處理指示。前三個來源資料記錄包含空值欄位,因為間接通路沒有位置資料。

"All Channels",Indirect,,Channel-04
"All Channels",Indirect,,Channel-07
"All Channels",Indirect,,Channel-24
"All Channels",Direct,Outlet,Channel-21
"All Channels",Direct,Mall,Channel-29
"All Channels",Direct,Kiosk,Channel-31

您可以使用處理產生空值建置方法,建立規則以建立維度並避免與空值相關的錯誤。

若要建立此範例的規則,

  1. 使用 Essbase 伺服器檔案目錄中儲藏庫可用的應用程式工作簿,匯入 / 建立 Sample Basic 立方體。

  2. 建立以逗號分隔的資料檔案,如以下所示,將其命名為 genchannel.txt,然後上傳至 Sample Basic 立方體目錄。

    "All Channels",Indirect,,Channel-04
    "All Channels",Indirect,,Channel-07
    "All Channels",Indirect,,Channel-24
    "All Channels",Direct,Outlet,Channel-21
    "All Channels",Direct,Mall,Channel-29
    "All Channels",Direct,Kiosk,Channel-31
    
  3. 應用程式頁面中,依序開啟應用程式和資料庫 (立方體)。

  4. 選取指令集頁籤,然後按一下規則


    已選取「指令碼」頁籤,並在 Essbase Web 介面中反白「規則」方磚。

  5. 按一下建立,然後選擇維度建置 (一般)


    在資料庫指令碼對話方塊中,會按下「建立」按鈕並選取「維度建置 (一般)」選項

  6. 在「新增規則」對話方塊中,

    1. 輸入規則名稱,例如 genchannel

    2. 針對來源類型選取檔案,按一下目錄,然後導覽至 genchannel.txt

      當您按一下目錄時,檔案預設會位於 Essbase 伺服器的立方體目錄中,因此您必須已經使用 Essbase Web 介面檔案區段上傳該檔案。如果檔案位於您的從屬端機器上,請按一下檔案瀏覽器來尋找檔案。

    3. 標頭記錄號碼維度建置記錄號碼欄位保留為 0。表頭記錄不適用於維度建置。

    4. 按一下繼續

    5. 維度建置規則隨即開啟,其中包含未定義的欄位,且預覽資料 (來自文字檔) 會植入欄位下方的方格。
      新規則 "genchannel" 的維度建置規則編輯器的影像,其中未定義的欄位 1 到 4 為等待填入的中繼資料資料欄。每個欄位下都是從來源資料檔匯入的資料值。

  7. 由於這是新規則,因此尚無相關聯的維度。

    1. 按一下維度
      規則編輯器中的維度按鈕

    2. 輸入新維度名稱通道,然後按一下新增
  8. 現在您需要定義建置方法,並檢查其他維度建置作業指示。按一下通道連結以編輯維度特性。

  9. 建立方式變更為產生處理空值


    維度建置規則編輯器中「編輯維度」視窗的圖像,其中已選取「程序產生」空值。

    按一下「確定」。

  10. 按一下「欄位 1」中的維度選取器,然後選取管道


    維度建置規則編輯器中已選取「通路」維度的欄位 1 影像。

  11. 將欄位 1 的類型選取器變更為層代

  12. 層代遞增至 2,因為「所有通路」階層成員位於層級 2。層代 1 成員永遠是維度名稱;在此例中為「通道」。

  13. 在「欄位 2 - 4」中,現在應選取通路作為維度。將類型選取器變更為層代,然後將層代號碼標示為 3 代表欄位 2、 4 代表欄位 3,以及 5 代表欄位 4。


    此圖像顯示使用「程序」產生空值建置方法,建立具有不同階層之「通道」維度的規則。欄位 1 定義為「通道」、「層代」、「2」,且包含「所有通道」。欄位 2 定義為「通路」、「產生」、「3」,且包含三筆記錄的「間接」,三筆記錄則包含「直接」。欄位 3 定義為「通路」、「世代」、「4」,且包含三個空值欄位與三個地點欄位 (Outlet、Mall 與 Kiosk)。欄位 4 定義為通路、層代、5,且包含通路 ID。

  14. 驗證規則,然後儲存並關閉。如果有任何錯誤,請參閱有效維度建置規則檔案的需求

  15. 執行維度建置工作

  16. 檢視大綱以確認已新增「通路」維度與預期的成員階層。

產生型維度建置的 Null 處理流程

如果啟用空值處理, Essbase 會以下列方式產生空值:

  • 空值產生欄位:如果在 Essbase 預期為「產生」欄位時發生空值,則 Essbase 會升級下一個「產生」欄位以取代遺漏的欄位。

    範例

    維度建置會將通路 ID 升級為「第 4 代」而非「第 5 代」,因為「第 4 代」包含空值。


    欄位 1 為通路,第 2 代包含所有通路。欄位 2 為通路,第 3 代包含間接。欄位 3 為通路,第 4 代包含空值。欄位 4 為通路,第 5 代包含通路 ID。

  • 次要欄位前的空值欄位:如果在次要欄位前直接出現空值,則 Essbase 會忽略次要欄位。(次要欄位類型為別名、屬性、公式、重複產生、重複產生別名、幣別名稱、幣別類目、屬性上階、UDA 及屬性維度的名稱。)

    範例

    維度建置會忽略欄位 4 中的別名,因為「層代 4」包含空值,並將通道 ID 升級為「層代 4」,而非「層代 5」。


    欄位 1 為通路,第 2 代包含所有通路。欄位 2 為通路,第 3 代包含間接。欄位 3 為通路,第 4 代包含空值。欄位 4 是包含「目錄」的「通道」、「別名」。欄位 5 為通路,第 5 代包含通路 ID。

  • 空值次要欄位:如果 Essbase 預期為次要欄位,則 Essbase 會忽略次要空值欄位並繼續載入 (與層代建置方法的行為相同)。

    範例

    維度建置會忽略「欄位 4」中的別名,因為該欄位包含空值。成員 Outlet 會新增至不含任何別名的大綱。


    欄位 1 為通路,第 2 代包含所有通路。欄位 2 為通路,第 3 代包含直接。欄位 3 為通路,第 4 代包含暢貨中心。欄位 4 為通路別名,包含空值。欄位 5 為通路,第 5 代包含通路 ID。