ピボット・ディメンションの理解とファクト表の設定

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に基づくフェデレーテッド・キューブの場合、Oracleでは、複数レベルのストアド・メンバー階層を含むディメンションをピボット・ディメンションとして選択しないことをお薦めします。動的階層を含むピボット・ディメンションを選択するか、(すべてのメンバーがレベル0保管済メンバーである)フラットな単一レベル階層の保管済階層を選択してください。

ファクト表の作成

Autonomous AI Lakehouseのファクト表には、フェデレーテッド・キューブのすべてのデータ値が格納されます。必要なファクト表がなく、フェデレーテッド・キューブEssbaseで管理されていない場合は、作成する必要があります。

ノート:

Essbaseによってファクト表が作成されるため、Essbaseでファクト表を管理する場合は、このトピックは必要ありません。フェデレーテッド・キューブのデータ・ロード・オプションを参照してください。

開始する前に、ファクト表にスキーマがあることを確認します。「フェデレーテッド・キューブのスキーマの作成」を参照してください。

ファクト表は、Essbase対応のフォーマットである必要があります。これは、その内容と形状が次の要件を満たしていることを意味します:

  • キューブのディメンションの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)よりも低い精度ではなりません。

  • ファクト表には、ディメンション・メンバー用に、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では、PARALLEL 4を追加して、Autonomous AI Lakehouseで索引のパラレル作成を有効にすることをお薦めします。

  • メタデータ列にNULL値を含めることはできません。

  • キューブの使用に増分データ・ロードやバッチ・スクリプト更新などのデータ生成プロセスが含まれる場合、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形式にエクスポートする方法について学習するには、「フェデレーテッド・キューブの資格証明の設定」を参照してください。