データのロードおよびディメンションの構築に関するヒント

時間を節約するために、Essbaseへの増分ディメンション構築を実行でき、データ・サブセットをロードできます。連結値を上書きしないように、データを親メンバーにロードしないでください。データ処理エラーを回避するには、ソースの各レコードに同じ数のデータ値フィールドがあることを確認します。

増分ディメンション構築

キューブ・アウトラインの構築中にEssbaseで複数のデータ・ソースを読み取ることができるようにするには、増分ディメンション構築を使用します。増分ディメンション構築では、すべてのデータ・ソースが処理されるまでアウトラインの再構築が遅延します。

データのみをロードする場合やディメンション構築で単一データソースを使用する場合は、このトピックをスキップします。

デフォルトでは、アウトラインに変更を加えるたびに、Essbaseによって変更のタイプが認識され、必要に応じてキューブが再構築されます。再構築では、時間とディスク領域を消費するデータベースを再構築します。

増分ディメンションの構築(遅延再構築ディメンションの構築とも呼ばれる)では、ディメンションの構築のために複数のデータソースが読み取られ、すべてのデータソースが処理されるまで再構築は延期のされます。

仮想のディメンション(動的計算またはラベルのみ)を追加すると、キューブ内に存在するデータはすべて、新しいディメンションの最初のレベル0保管済メンバーで格納されます。階層内に少なくとも1つの保管済メンバーがある必要があります。ない場合は、アウトラインの検証中にエラーが戻されます。

アプリケーション・ワークブックを使用して既存のキューブにディメンションを増分追加すると、データは新しい最上位メンバーに自動的にマップされます。保管済メンバーを選択して、既存のデータをマップすることはできません。新しいディメンションの最上位メンバーが動的計算である場合、動的メンバーにはデータを格納できないため、データが失われます。

アプリケーション・ワークブックを使用して新しいディメンションを追加し、その最上位メンバーを動的計算にする場合は、次のステップに従います:
  1. 最上位メンバーを保管済として新しいディメンションを追加します。
  2. 計算スクリプトを実行して新しい最上位メンバーから、そのディメンションの別の保管済メンバーにデータをコピーします。
  3. 最上位メンバーを動的計算に変更します。

MaxLを使用すると、すべてのデータソースを1つのimport文に含めることができます。ファイルごとにアウトラインを検証するかどうかを制御できます。最後のファイルに対するアウトラインの検証は有効にする必要があります。

どのような場合でも、データソースはリストされている順序で処理されます。

ノート:

MaxLを使用すると、ファイルごとにアウトラインの検証を適用または抑制できます。有効なアウトラインを保証するには、最新ビルドによって確実にアウトラインが検証されるようにします。

データのロード場所

データ・ロードを実行する前に、データを意図せずに上書きしないようにするステップを実行します。ブロック・ストレージ(BSO)キューブの親メンバーへのロードは避けてください。その場合は、Essbaseで子から親に#MISSING値が連結されないようにするステップを実行します。

ディメンション構築を行う場合または集約ストレージ(ASO)データベースを処理する場合、この項をスキップします。

親メンバーにデータをロードする場合は、データベースの計算時に子のデータ値の集計によって、親のデータ値が上書きされることがあります。上書きを回避するには、次のようにします。

  • 可能なかぎり、親に直接データをロードしないでください。

  • 親メンバーにデータをロードする必要がある場合は、集計の#MISSING設定を変更することで、その親の子から#MISSING値を親に集計しないようにEssbaseに伝えます。

MaxL、アプリケーション・ワークブック、アウトラインまたは計算スクリプトを使用して、欠落している集計動作を設定できます。

  • Essbase Webインタフェースを使用して集計の欠落動作を変更するには、データベース・カスタマイズ・ページで「欠落値の集計」設定を変更します。「詳細キューブ・プロパティの設定」を参照してください。

  • アプリケーション・ワークブックを使用して集計の欠落動作を変更するには、Cube.Settingsワークシートの「欠落値の集計」設定を変更します。

  • 計算スクリプトで集計の欠落動作を変更するには、SET AGGMISSG計算コマンドを使用します。

  • MaxLを使用して集計の欠落動作を変更するには、alter database appname.dbname enable|disable aggregate_missingを使用します。

前述のメソッドは、子の値が空(#MISSING)の場合にのみ機能します。子がデータ値を持っている場合、そのデータ値で親のデータ値が上書きされます。#MISSING Valuesを参照してください。

ノート:

動的計算メンバーまたは属性メンバーにはデータをロードできません。たとえば、年が動的計算メンバーである場合、このメンバーにはデータをロードできません。かわりに、動的計算メンバーではないQtr1、Qtr2、Qtr3およびQtr4にデータをロードします。

ソース・データにフィールドがありません

Essbaseデータ・ロードを実行する場合、ソース・データの各レコードに同じ数のデータ値フィールドが必要です。データ値が欠落している場合、データ・ロードは正しく処理されません。

ディメンション・フィールドまたはメンバー・フィールドが欠落している場合、Essbaseでは、以前にそのディメンション・フィールドまたはメンバー・フィールドで使用した値が使用されます。「データ・ロードおよびディメンション構築のデバッグ」を参照してください。

ルールに余分な空白フィールドがある場合は、空のフィールドを隣のフィールドと結合します。

集約ストレージ・キューブでは、値はレベル0のセルにのみロードできます。ソース内の値として#MISSINGまたは#MIを指定すると、キューブ内の対応するセル(存在する場合)が削除されます。

集約ストレージ・キューブのデータ・ロードの相違点については、次を参照してください。

ソースからのレコードのサブセットのロード

Essbaseデータ・ロードまたはディメンション構築時に、ソース・データからレコードのサブセットをロードできます。

レコードのサブセットをロードするには:

  1. テキスト編集ツールを使用して、データソース内のレコードに番号を付けます。
  2. ロード・ルールを、レコード番号を含む列を無視するように設定します。
  3. 拒否基準を定義して、ロードするレコードを除くすべてのレコードを却下します。たとえば、レコード番号が250より小さい列と500より大きい列を無視するようにして、該当するすべてのレコードを拒否します。

    エラー・ログが保持できるレコード数を超えるレコードは拒否できません。デフォルトでは、この制限は1000です。制限を変更するには、DATAERRORLIMIT構成を設定します。