維度建構中的層次參考

層級是從由下而上階層定義,其中分支終端成員是層級 0,而接近維度名稱的每個步驟則以 1 遞增層級。從自下而上式來源建立 Essbase 維度時,請使用層級建置方法。如果來源資料包含空值,請使用處理層次空值建置方法。

在由下而上的資料來源中,每筆記錄都會定義維度的單一成員。定義會從有關成員的最特定資訊開始,並提供漸進式的更多一般資訊。一般記錄會指定新成員的名稱,然後指定其父項的名稱,然後指定其父項的父項名稱等等。

例如,在下圖的大綱中,最低層級成員位於 Product 維度分支的底部。

圖 14-3 產生與層次編號


此圖像顯示每個成員的層代編號和層級編號。

若要使用維度建置工作建置大綱,您可以輸入下列由下而上的資料來源:

100-10-12  100-10  100
100-20-12  100-20  100

通常,當最低層級成員由左至右排序時,您會使用層級建置方法來執行維度建置。層級 0 (分葉層級) 成員位於第一個欄位中,層級 1 成員位於第二個欄位中,依此類推。此組織與如何呈現產生參照 (由上而下) 的資料相反。

假設您有一個包含 Product 維度的立方體,而且想要使用下列由下而上、以 Tab 字元分隔的資料檔案,為 Product 維度建立更多產品成員。

600-10-11	600-10	600
600-20-10	600-20	600
600-20-18	600-20	600

資料來源為「由下而上」,其中資料來源的第一個資料欄包含新的分葉層次成員 (600-10-11、600-20-10 和 600-20-18)。第二個資料欄包含新成員的父項 (600-10 和 600-20),第三個資料欄則包含父項的父項 (600)。

維度建置載入規則使用層級參照建置方法,將成員新增至 Product 維度。規則會指定資料來源中每個欄位的階層號碼與欄位類型。除非您的來源資料包含空值 (針對該使用案例,請參閱下方的「以空白欄位處理」),否則您也必須在規則的維度特性中選取層級建置方法。

層次建置的維度建置規則

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

圖 14-4 等級


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

處理空白欄位

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

附註:

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

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

若要啟用空值處理,請在建立新維度建置規則時,在維度特性中選取其中一個空值處理建置方法。


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

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

範例

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


通路維度包含四層成員深度。通路 ID 的層次為 0。間接通路 ID 的上方有三層成員,而直接通路 ID 的上方有四層成員,這使之成為不平衡 / 不規則的階層。

資料來源由下而上,表示每個記錄中會先出現最低階層。因此,使用階層參照建置方法是合理的。不過,將需要空值處理指示。前三個來源資料記錄包含空值欄位,因為間接通路沒有位置資料。

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

您可以使用程序層級 null 建置方法,建立用來建置維度的規則,並避免與空值相關的錯誤。

若要建立此範例的規則,

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

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

    Channel-04,,Indirect,"All Channels"
    Channel-07,,Indirect,"All Channels"
    Channel-24,,Indirect,"All Channels"
    Channel-21,Outlet,Direct,"All Channels"
    Channel-29,Mall,Direct,"All Channels"
    Channel-31,Kiosk,Direct,"All Channels"
  3. 在首頁上,開啟應用程式,然後開啟資料庫 (立方體)。

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


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

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


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

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

    1. 輸入規則名稱,例如 levchannel 。

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

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

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

    4. 按一下繼續。

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

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

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

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

  9. 將建立方式變更為處理層級空值。


    在維度建置規則編輯器中編輯「維度」視窗,其中已選取「程序」層次空值。

    按一下「確定」。

  10. 按一下「欄位 1」中的維度選取器,然後選取管道。
    維度建置規則編輯器中的欄位 1,填入資料,並選取「通道」維度。

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

  12. 將層次增至 0,因為管道 ID 位於層次 0。

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


    使用「處理」層次 Null 的建置方式來建立具有不同階層的通路維度的維度建置規則。欄位 1 定義為通路、層級、0,且包含通路 ID。欄位 2 定義為通路、層級、1,且包含三個 Null 欄位與三個地點欄位 (Outlet、Mall 及 Kiosk)。欄位 3 定義為三筆記錄的通路、層級、2 和間接,三筆記錄則定義為「直接」。欄位 4 定義為「通路」、「層級」、「層級 3」,且包含「所有通路」。

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

  15. 執行維度建置工作。

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

層次型維度建構的 Null 處理流程

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

  • Null 層次欄位:如果 Essbase 預期為「層次」欄位,則 Essbase 會升級下一個「層次」欄位以取代遺漏的欄位。

    範例

    維度建置會將「間接」置於「層級 1」而非「層級 2」,因為「層級 1」的「欄位 2」包含空值。


    欄位 1 為通路,層級 0 包含第一列中的通路 ID。欄位 2 為通路,層級 1 在第一列中包含空值。欄位 3 為「通道」,階層 2,包含第一列的「間接」。欄位 4 為「通道」,包含「所有通道」的層級 3。

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

    範例

    維度建置將會忽略「欄位 3」中的別名,因為「欄位 2」包含空值。Essbase 會將「間接」置於第 1 級,而第 2 級的所有通道。


    欄位 1 為通路,層級 0 包含通路 ID。欄位 2 為通路,層次 1 包含空值。欄位 3 是包含目錄的通道、別名。欄位 4 是包含間接的通路層級 2。欄位 5 為通路,包含所有通路的層級 3。

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

    範例

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


    欄位 1 為通路,包含通路 ID 的層級 0。欄位 2 為通路,第一列包含分店的層級 1,下一兩列則包含購物中心與自助服務亭。欄位 3 為「通道」和「別名」,在第一列中包含空值,在接下來的兩列中包含一些別名。欄位 4 為通路,層級 2,包含所有列中的「直接」。欄位 5 為通路,層級 3 包含所有列中的「所有通路」。