維度建構中的層次參考

層級是從由下而上階層定義,其中分支終端成員是層級 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 包含所有列中的「所有通路」。