識別樞紐分析表維度及設定事實表格

Autonomous AI Lakehouse 中的事實表格儲存聯合立方體的資料。如果您沒有符合聯合分割區需求的事實表格,而且您不讓 Essbase 管理事實表格,就必須建立一個事實表格。

附註:

如果您要讓 Essbase 管理事實表格, Essbase 會為您建立事實表格。

開始進行本小節之前,請先建立 Essbase 應用程式和立方體 (如果還沒有的話)。

指定旋轉維度

在設計聯合立方體時,您需要選取樞紐分析表維度。旋轉維度是您從 Essbase 立方體大綱指定的維度,代表數值資料值。

  • 旋轉維度可以是計量/帳戶,但並非必要。

  • 樞紐分析表維度的所有已儲存成員必須對應至事實表格資料欄,這些資料欄代表您在自治式 AI 湖倉一體中的數值資料值。

  • 如果需要執行 Essbase 區塊儲存 (BSO) 計算命令檔,請選取密集維度作為旋轉維度。聯合立方體若樞紐維度為稀疏,則不支援計算命令檔。

  • 旋轉維度應該具有較為靜態的成員名稱,而不是非常大量的成員。原因:變更 Essbase 立方體大綱中的樞紐分析表維度 (例如,新增或重新命名儲存的成員),需要手動更新 Autonomous AI Lakehouse 中的事實表格,而且還需要重新建立聯合分割區

  • Essbase 維度包含需要複雜、動態公式的成員 (例如 Sample Basic 範例中的 "Opening Inventory" 與 "Ending Inventory"),則不應選取作為旋轉維度。

  • 您可以在建立聯合分割區時,提供選取的樞紐分析表維度。

  • 旋轉維度繼承 Oracle Database 的 1,000 個資料欄的限制。您必須決定旋轉維度中適用資料欄成員的數目,以確保不會超過此限制。旋轉維度中可能的已儲存成員組合數目加上立方體中的維度數目,不可小於或等於 1,000。

  • 對於以 ASO 為基礎的聯合立方體,Oracle 建議不要選取包含多層次已儲存成員階層的維度作為樞紐分析維度。應選取包含動態階層、平面的已儲存階層、單一層級階層的旋轉維度 (其中所有成員都是層級 0 的已儲存成員)。

建立事實表格

Autonomous AI Lakehouse 中的事實表格儲存聯合立方體的所有資料值。如果您還沒有必要的事實表格,而且您的聯合立方體不是 Essbase 管理的,則必須建立一個。

附註:

如果您要讓 Essbase 管理事實表格,則不需要此主題,因為 Essbase 會為您建立事實表格。請參閱聯合立方體的資料載入選項

開始之前,請確定您有事實表格的綱要。請參閱建立聯合立方結構的綱要

事實表格必須為 Essbase 就緒格式,意思是事實表格符合以下對其內容與型態的要求:

  • 每個立方體的 (非屬性) 維度必須以單一資料欄標頭為代表,但其中一個立方體的維度為例外 (一般為包含計量/帳戶的維度),此維度必須以二或多個資料欄提供。此例外稱為樞紐維度

  • 事實表格必須由唯一的記錄 (不可重複) 組成,且每個序列的 Essbase 儲存格交集一個資料列。

如果您熟悉 Essbase 資料匯出,您會發現事實表格的形狀與 Essbase 資料欄匯出完全相同。

與資料欄匯出類似,事實表格必須包含:

  • 大綱的每個 (非屬性) 維度各一個資料欄 (旋轉維度除外)

  • 旋轉維度的每個已儲存成員各有一個資料欄

以下是一個事實表格的範例,其中計量維度已經旋轉,這表示它是樞紐分析維度。此旋轉維度影響了事實表格的型態,因為該維度已儲存成員變成以下資料欄標頭:SALES、COGS、MARKETING、PAYROLL、MISC、INTITIAL_INVENTORY 以及 ADDITIONS。


含有去標準化資料與中繼資料的事實表格

您可以使用 SQL 建置事實表格,也可以透過 Essbase 資料匯出建立。您可以使用 Autonomous AI Lakehouse 工具,或使用 Essbase 資料載入功能,將資料載入至事實表格。

建置事實表格的其他準則包括:

  • 事實表格的資料欄數必須少於 1000 個。

  • 不可包含 Essbase 中將對應至屬性維度的資料欄。

  • 事實表格的有效位數不可小於 IEEE binary64 (雙精度浮點數)。

  • 事實表格的維度成員應為 NVARCHAR2 類型且長度為 1024 個位元字元的國際化字串。

事實表格建立範例

若要在 Autonomous AI Lakehouse 中建立事實資料表格,您可以使用 SQL。

  1. 使用 SQL Developer 或您選擇的工具,以綱要擁有者的身分登入 Autonomous AI Lakehouse (從建立聯合立方結構的綱要步驟)。

  2. 如果還沒有事實表格,請使用 SQL 建立。

    例如,下列 SQL 會使用從 Essbase Sample Basic 立方體匯出的資料建立事實表格。

    CREATE TABLE "SAMP_FACT"
    ( "PRODUCT" NVARCHAR2(1024),
    "MARKET" NVARCHAR2(1024),
    "YEAR" NVARCHAR2(1024),
    "SCENARIO" NVARCHAR2(1024),
    "SALES" NUMBER(38,0),
    "COGS" NUMBER(38,0),
    "MARKETING" NUMBER(38,0),
    "PAYROLL" NUMBER(38,0),
    "MISC" NUMBER(38,0),
    "INITIAL_INVENTORY" NUMBER(38,0),
    "ADDITIONS" NUMBER(38,0)
    ) NOCOMPRESS LOGGING PARALLEL 4;

注意事項

  • 在以上範例中,事實表格名稱為 SAMP_FACT,並且以 Sample Basic 為基礎。

  • 為獲得最佳效能,事實表格中的所有非數值資料欄都應該為 NVARCHAR2(1024) 類型,所有數值資料欄都應該為 NUMBER 類型。

  • Oracle 建議在 Autonomous AI Lakehouse 中新增 PARALLEL 4,以平行方式建立索引。

  • 中繼資料資料欄不能包含空值。

  • 立方體的用途如果包含資料生成處理作業 (例如增量資料載入或批次命令檔更新),Oracle 建議使用 NOCOMPRESS。立方體若主要用於讀取作業的話,請使用 COMPRESS 將用於報表的事實表格最佳化。

  • 如果您在建立事實表格時收到下列驗證錯誤,請刪除空值資料列。

    ORA-18265: fact table key column ("<DIM_NAME>") with value ('') not in
          dimension("<Name_of_Column") star table key column
  • 為了獲得最佳效能,除非絕對需要,否則應避免對表格增加任何特定限制。

  • 在上述範例中,事實表格名稱是以 Sample Basic 為基礎,此範例可在 Essbase 檔案目錄的儲藏庫中使用。您可以從此範例立方體或任何其他 Essbase 立方體匯出資料,然後載入資料來建置事實表格。您必須先設定將資料載入至聯合立方體的證明資料,才能執行此作業。請參閱設定聯合立方結構的證明資料,以設定證明資料,並瞭解如何使用 DATAEXPORT 命令將資料匯出至 DBMS 格式。