ロード・ルール

ロード・ルールは、データ・ロードまたはディメンション構築中にデータのソースを処理するためにEssbaseが実行する操作を定義するのに役立ちます。ルールを使用して、データ値をキューブにマップしたり、ディメンションとメンバーをアウトラインにマップします。

図12-3 ロード・ルールによるデータのロード


この画像は、ルール・ファイルを使用してデータをロードするプロセスを示しています。ルール・ファイルによって生データ・ファイルが読み取られ、生データに対する操作をルール・ファイルで実行して、処理されたデータがEssbaseキューブに保管されます。

ロード・ルールでは、どの構築方法を使用するか、データ値またはメンバーの順序がソートされているかランダムになっているか、ロード前のデータ値またはメンバーの変換方法を定義します。

Essbaseによって、ソースのデータ値またはメンバーが読み取られ、ルールに基づいて変更され、変更されたデータ値はキューブにロードされ、変更されたメンバーはアウトラインにロードされます。Essbaseによってソース・データが変更されることはありません。同じルール・セットを必要とするデータソースでルール・ファイルを再利用できます。

ロード・ルールの各操作

ルール・ファイルを使用すると、データまたはメンバーをキューブにロードするときに、次に示す調整を実施できます。

  • SQL問合せを使用した外部ソースからのプル

  • アウトラインにディメンションおよびメンバーを追加します

  • アウトライン内の既存のディメンションおよびメンバーの変更

  • ソース・データ内の一部のフィールドまたは文字列の無視

  • フィールドの移動、結合、分割または作成によるフィールド順序の変更

  • 文字列の変更によるソース内のデータのキューブへのマップ

  • データ値のスケーリングまたはデータ・ソース内に既存のデータ値へのデータ値の追加によるソース内のデータ値の変更

  • 欠落値のためのヘッダー・レコードの設定

  • 無効なレコードの拒否とデータ・ロードの続行

データ・ロード/ディメンション構築の成功基準

ディメンションの構築時には、ディメンションごとに個別のルール・ファイルを作成することをお薦めします。

データ値を正常にロードするには、そのディメンショナリティをEssbaseが把握する必要があります。つまり、Essbaseが各ディメンションから1つのメンバーを検出してから、データ値を検出することが必要になるということです。たとえば、図12-2では、Texas、100-10、Jan、SalesおよびActualの各メンバーとともに、データ値42がEssbaseによってデータベースにロードされます。Essbaseがデータ値を検出した後で各ディメンションのメンバーが指定されると、データのロードは停止されます。

最も簡単にレコード(ソース・データの行に相当)をフォーマットする方法は、次に示すように、各ディメンションの1つのメンバーに続けて1つのデータ・フィールドを含めることです。

Sales "100-10" Ohio Jan Actual 25
Sales "100-20" Ohio Jan Actual 25
Sales "100-30" Ohio Jan Actual 25

ルール・ファイル内の各レコードのフィールド数は一致していることが必要です(前に示した各レコードには6つのフィールドがあることに注目してください)。

データ・ソースには、次の項目がすべて含まれていて、それ以外のものは含まれていないことが必要です。

  • 各ディメンションの1つ以上の有効なメンバー。メンバー名に次のいずれかが含まれる場合は、メンバー名を引用符で囲む必要があります。

    • スペース

    • 数字(0–9)

    • ダッシュ(マイナス符号、ハイフン)

    • プラス符号

    • アンパサンド(&)

  • 1つ以上の有効なデータ値。有効なデータ・フィールドを参照してください。

  • 有効なデリミタ。「有効なデリミタ」を参照してください。

ロード・ルールを使用すると、ソース・データのロード時にフォーマットできるようになります(ソースを手動で編集する必要はありません)。ソース・データが完全にフォーマットされている場合(たとえば、Essbaseからエクスポートした未変更のデータの場合)、ロード・ルールは不要ですが、そのような状況はほとんどありません。ディメンションの構築には、常にロード・ルールが必要です。