識別樞紐分析表維度及設定事實表格
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 資料欄匯出完全相同。
與資料欄匯出類似,事實表格必須包含:
-
大綱的每個 (非屬性) 維度各一個資料欄 (旋轉維度除外)
-
旋轉維度的每個已儲存成員各有一個資料欄
以下是一個事實表格的範例,其中計量維度已經旋轉,這表示它是樞紐分析維度。此旋轉維度影響了事實表格的型態,因為該維度已儲存成員變成以下資料欄標頭:SALES、COGS、MARKETING、PAYROLL、MISC、INTITIAL_INVENTORY 以及 ADDITIONS。

您可以使用 SQL 建置事實表格,也可以透過 Essbase 資料匯出建立。您可以使用 Autonomous AI Lakehouse 工具,或使用 Essbase 資料載入功能,將資料載入至事實表格。
建置事實表格的其他準則包括:
-
事實表格的資料欄數必須少於 1000 個。
-
不可包含 Essbase 中將對應至屬性維度的資料欄。
-
事實表格的有效位數不可小於 IEEE binary64 (雙精度浮點數)。
-
事實表格的維度成員應為 NVARCHAR2 類型且長度為 1024 個位元字元的國際化字串。
事實表格建立範例
若要在 Autonomous AI Lakehouse 中建立事實資料表格,您可以使用 SQL。
-
使用 SQL Developer 或您選擇的工具,以綱要擁有者的身分登入 Autonomous AI Lakehouse (從建立聯合立方結構的綱要步驟)。
-
如果還沒有事實表格,請使用 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 格式。