ピボット・ディメンションの識別およびファクト表の設定
Autonomous AI Lakehouseのファクト表には、フェデレーテッド・キューブのデータが格納されます。フェデレーテッド・パーティショニングの要件を満たすファクト表がなく、Essbaseでファクト表を管理するようにしていない場合は、作成する必要があります。
ノート:
Essbaseでファクト表を管理すると、Essbaseによってファクト表が自動的に作成されます。「フェデレーテッド・キューブのデータ・ロード・オプション」を参照してください。
この項を開始する前に、Essbaseアプリケーションおよびキューブを作成します(まだ作成していない場合)。
ピボット・ディメンションの特定
フェデレーテッド・キューブの設計の一環として、ピボット・ディメンションを選択する必要があります。ピボット・ディメンションは、数値データ値を表すためにEssbaseキューブ・アウトラインから指定するディメンションです。
-
ピボット・ディメンションは、メジャー/勘定科目である必要はありませんが、そうであってもかまいません。
-
ピボット・ディメンションのすべての保管済メンバーは、Autonomous AI Lakehouseで数値データの値を表すファクト表の列にマップされる必要があります。
-
Essbaseブロック・ストレージ(BSO)の計算スクリプトを実行する必要がある場合は、ピボット・ディメンションとして密ディメンションを選択します。ピボット・ディメンションが疎である場合、計算スクリプトはフェデレーテッド・キューブではサポートされません。
-
ピボット・ディメンションには、多数のメンバーではなく、ほとんど変化のない複数のメンバー名が含まれている必要があります。理由: Essbaseキューブ・アウトラインのピボット・ディメンションを変更すると(保管されたメンバーの追加または名前変更などによって)、Autonomous AI Lakehouseのファクト表に対応する手動更新が必要になり、フェデレーテッド・パーティションの再作成も必要となります。
-
複雑な動的式を必要とするメンバー(例としてSample Basicを使用する"Opening Inventory"や"Ending Inventory"など)を含むEssbaseディメンションは、ピボット・ディメンションとして選択できません。
-
フェデレーテッド・パーティションの作成時に選択したピボット・ディメンションを指定します。
-
Oracle Databaseでは列の上限が1,000個であり、ピボット・ディメンションではこの上限が継承されます。ピボット・ディメンションにおける対象となる列メンバーの数を特定して、この上限に到達しないようにしてください。ピボット・ディメンション内の可能性がある保管済メンバー組合せの数とキューブ内のディメンションの数の合計は、1,000以下である必要があります。
-
ASOに基づくフェデレーテッド・キューブの場合、マルチレベルの保管済メンバー階層を含むディメンションをピボット・ディメンションとして選択しないことをお薦めします。動的階層を含むピボット・ディメンションを選択するか、(すべてのメンバーがレベル0保管済メンバーである)フラットな単一レベル階層の保管済階層を選択してください。
ファクト表の作成
Autonomous AI Lakehouseのファクト表には、フェデレーテッド・キューブのすべてのデータ値が格納されます。必要なファクト表がなく、フェデレーテッド・キューブがEssbaseで管理されていない場合は、作成する必要があります。
ノート:
Essbaseでファクト表を管理する場合は、Essbaseによってファクト表が作成されるため、このトピックは必要ありません。「フェデレーテッド・キューブのデータ・ロード・オプション」を参照してください。開始する前に、ファクト表のスキーマがあることを確認します。「フェデレーテッド・キューブのスキーマの作成」を参照してください。
ファクト表は、Essbase対応の形式である必要があります。つまり、その内容と形状について次の要件を満たしている必要があります。
-
キューブの(非属性)ディメンションはそれぞれ、1つの列ヘッダーとして表されている必要があります。ただし、キューブのディメンションの1つ(通常は、メジャー/勘定科目を含むディメンション)を2つ以上の列にピボットする必要があります。この例外は、ピボット・ディメンションと呼ばれます。
-
ファクト表は、Essbaseセル交差のシーケンスごとに1行の、一意のレコード(重複なし)で構成されている必要があります。
Essbaseデータ・エクスポートを熟知している場合は、ファクト表の形状が、Essbase列エクスポートと同じであることがわかるでしょう。
列エクスポートと同様に、ファクト表に次のものが含まれている必要があります:
-
アウトラインの(非属性)ディメンションごとに1つの列(ピボット・ディメンション以外)
-
ピボット・ディメンションの保管済メンバーごとに1つの列
メジャー・ディメンションがピボットされたファクト表(つまり、ピボット・ディメンション)の例を次に示します。ピボット・ディメンションは、その保管済メンバーが列ヘッダー(SALES、COGS、MARKETING、PAYROLL、MISC、INTITIAL_INVENTORYおよびADDITIONS)になるため、ファクト表の形状に影響します。

SQLを使用してファクト表を作成するか、Essbaseデータ・エクスポートからそれを作成することができます。Autonomous AI Lakehouseのツールを使用して、またはEssbaseデータ・ロード機能を使用して、ファクト表にデータをロードできます。
ファクト表を作成するためのその他のガイドラインを次に示します:
-
ファクト表の列は1000より少なくする必要があります。
-
Essbaseにおいてマップされる列を、属性ディメンションに含めないでください。
-
ファクト表の精度をIEEE binary64 (double)より小さくしないでください。
-
ファクト表には、ディメンション・メンバーについて、1024ビット文字長でNVARCHAR2型が使用された国際化文字列が含まれている必要があります。
ファクト表の作成例
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型である必要があります。
-
PARALLEL 4を追加して、Autonomous AI Lakehouseで索引のパラレル作成を有効にすることをお薦めします。
-
メタデータ列では、NULL値を含めることはできません。
-
キューブの使用に増分データ・ロードやバッチ・スクリプト更新などのデータ生成プロセスが含まれる場合、OracleではNOCOMPRESSをお薦めします。キューブを主に読取り操作に使用する場合は、COMPRESSを使用してレポート用にファクト表を最適化します。
-
ファクト表の作成時に次の検証エラーが発生した場合は、NULL行を削除します。
ORA-18265: fact table key column ("<DIM_NAME>") with value ('') not in dimension("<Name_of_Column") star table key column -
最適なパフォーマンスを得るためには、特に必要でないかぎり、表に特定の制約を追加しないでください。
-
前述の例では、ファクト表名はSample Basicに基づいています。Sample Basicは、Essbaseファイル・カタログのギャラリで使用できます。このサンプル・キューブまたは他のEssbaseキューブからデータをエクスポートし、それをロードしてファクト表を作成できます。これを行う前に、フェデレーテッド・キューブにデータをロードするための資格証明を設定する必要があります。資格証明を設定し、DATAEXPORTコマンドを使用してデータをDBMS形式にエクスポートする方法について学習するには、「フェデレーテッド・キューブの資格証明の設定」を参照してください。