属性ディメンションの構築と属性の関連付け

Essbaseディメンション構築のデータ・ソースに属性情報が含まれている場合は、1つ以上のロード・ルールを使用して、属性ディメンションの構築、およびそれらの基本ディメンションのメンバーへの属性の関連付けをします。

ロード・ルールを使用すると、属性ディメンションの動的な構築、メンバーの追加や削除、および属性の関連付けの設定や変更ができます。

属性を使用するには、次の操作が必要です。

  • 基本ディメンションが存在しない場合は、構築する必要があります。

  • 属性ディメンションを構築する必要があります。

  • 基本ディメンションのメンバーを属性ディメンションのメンバーに関連付ける必要があります。

次のいずれかの方法で、これらの操作を実行できます。

  • 基本ディメンションと属性ディメンションの構築および関連付けを同時に行います。この場合、単一のルール・ファイルを使用して基本ディメンションと1つ以上の属性ディメンションを構築し、各属性を基本ディメンションの適切なメンバーと関連付けます。これは単一のルール・ファイルを使用するため、最も簡単な方法です。基本ディメンションが存在せず、ソース・データの各レコードに基本ディメンションの各メンバーの属性情報がすべて含まれている場合は、この方法を使用します。

  • 属性ディメンションを構築した後、1つのルール・ファイルで関連付けを行います。基本ディメンションは別のステップで構築されるか、またはすでに存在していると仮定すると、属性ディメンションの構築と、その属性と基本ディメンションのメンバーとの関連付けを1ステップで実行できます。ルール・ファイルに属性の関連付けを定義するだけです。ディメンション構築での属性の関連付けを参照してください。

  • 属性ディメンションを構築した後、別のルール・ファイルを使用して関連付けを行います。基本ディメンションは別のステップで構築されるか、またはすでに存在していると仮定すると、属性ディメンションの構築と、その属性と基本ディメンションのメンバーとの関連付けを別のステップで実行できます。属性ディメンションを構築した後、属性メンバーを基本ディメンションのメンバーと関連付けます。この方法は、マルチレベルの数値属性ディメンションや異なるサイズ範囲を表すメンバーを持つ数値属性ディメンションを構築するときに使用します。

参照:

属性ディメンションの構築

データベース内に属性ディメンションを構築する前に、アウトラインの属性メンバー名のフォーマットを定義する必要があります。属性ディメンションのメンバー名の設定を参照してください。

次の方法のいずれかを使用して、属性ディメンションを構築できます。

Essbaseでは、属性の関連付けと「...として追加」の構築方法を同時には使用できません。

属性ディメンションを構築するためのルール・ファイルを定義する場合は、基本ディメンションと、属性ディメンション・ファイルの名前を指定します。

ディメンション構築での属性の関連付け

データのソースに属性情報が含まれている場合は、1つ以上のディメンション構築を使用して、属性ディメンションをEssbaseアウトラインに追加し、属性メンバーを基本ディメンション・メンバーに関連付けます。

属性ディメンションを構築して属性メンバーを基本ディメンションのメンバーに関連付けるまでを1ステップで行うか、個別のステップで行うかにかかわらず、この項の説明に従ってフィールドを定義します。

ソース・データのすべてのレコードには、2つ以上の列が含まれている必要があります。1つは基本ディメンションのメンバー用、もう1つは基本ディメンション・メンバーの属性値用です。同じソース・データ・レコードに、基本ディメンションのメンバーと関連付ける他の属性用の列を追加で含めることができます。対応する属性メンバーのフィールドの前に、基本メンバーのフィールドを配置する必要があります。

Essbaseでは、同じディメンション構築ジョブで、基本ディメンションのメンバーと属性ディメンションのメンバーを作成し、属性を関連付けることができます。

Sample Basicの新しいProductメンバー500-10および500-20に500の子として追加する、ディメンション構築を実行するとします。

同じディメンション構築で、新しい数値属性メンバー64をOunces属性ディメンションに追加します。

最後に、ディメンション構築で、500-10および500-20と64のOunces数値属性を、500-10と既存のCaffeinated_True属性を、500-20とCaffeinated_Falseを関連付けます。ディメンション構築に使用しているテキスト・データ・ファイルは、次のようになります。
500	500-10	64	True
500	500-20	64	False

ディメンション構築ジョブの実行後、次のアウトラインに示されているようにメンバーの構築と属性の関連付けが行われます。メンバー64は、Ounces属性ディメンションの新規メンバーです。メンバー500、500-10および500-20は、基本ディメンションであるProductディメンションの新規メンバーであり、メンバー64に関連付けられています。


このイメージは、基本ディメンションおよび属性ディメンションの新規メンバーを示しています。

この例を再現するには、次のようにします。

  1. Sample Basicキューブをインポートまたは構築します。その際には、Essbaseサーバーにあるファイル・カタログ内のギャラリから入手可能な、アプリケーション・ワークブックを使用します。

  2. 次のようなタブ区切りのデータ・ファイルを作成し、attrprod.txtという名前を付けて、Sample Basicキューブ・ディレクトリにアップロードします。

    500	500-10	64	True
    500	500-20	64	False
  3. 「アプリケーション」ページで、アプリケーション(Sample)を展開します。

  4. キューブ名(Basic)の右側にある「アクション」メニューから、インスペクタを起動します。


    インスペクタを選択したポップアップ・メニュー

  5. 「スクリプト」タブを選択して、「ルール」をクリックします。


    データベース・インスペクション・ダイアログで「スクリプト」タブが選択されており、「ルール」が強調表示されています

  6. 「作成」をクリックして、「ディメンション構築(標準)」を選択します。


    データベース・インスペクション・ダイアログで、作成ボタンが押されていて、「ディメンション構築(標準)」オプションが選択されています

  7. 「新規ルール」ダイアログで、次のように操作します。

    1. ルール名を入力します(例: attrprod)。

    2. 「ソース・タイプ」「ファイル」を選択し、「カタログ」をクリックし、attrprod.txtに移動します。

      「カタログ」をクリックする場合、そのファイルは、デフォルトではEssbaseサーバー上のキューブ・ディレクトリに配置されると想定されているため、Essbase Webインタフェース「ファイル」セクションを使用してすでにアップロードしてある必要があります。そのファイルがクライアント・マシンにある場合は、「ファイル・ブラウザ」をクリックしてそのファイルを特定します。

    3. 「ヘッダー・レコード番号」および「ディメンション構築レコード番号」フィールドは0のままにします。ヘッダー・レコードは、ディメンション構築には役立ちません。

    4. 「デリミタ」の値を「カンマ」から「タブ」に変更します。

    5. 「続行」をクリックします。

    6. ディメンション構築ルールは、未定義のフィールドと、フィールドの下のグリッドに移入されたプレビュー・データ(テキスト・ファイルからのデータ)とともに表示されます。
      フィールドが定義されておらず、フィールドの下のグリッドにプレビュー・データが移入されている、attrprodという名前のディメンション構築ルール。

  8. これは新しいルールであるため、ディメンションはまだ関連付けられていません。

    1. 「ディメンション」をクリックします。
      ルール・エディタの「ディメンション」ボタン

    2. ディメンション名「Product」を選択または入力し、「追加」をクリックします。
  9. 次は、構築方法を定義し、他のディメンション構築操作手順を確認する必要があります。「Product」をクリックしてそのプロパティを編集します。
    「ディメンションの編集」ダイアログ内のクリック可能な「Product」ディメンション名。

  10. 「構築方法」「世代」であることを確認します。下の「メンバー名」フィールドは空白のままにします。
    「世代」構築方法が選択されている「ディメンションの編集」ダイアログ・ボックスの図。

  11. 「詳細」をクリックし、「属性の作成」を選択します。
    「属性の作成」が選択されている、「ディメンションの編集」ダイアログ・ボックス内の「詳細」パネルの図。

  12. 「OK」をクリックします。
  13. attrprodルールで、次のようにします:
    1. フィールド1において、「ディメンション」で「Product」を選択し、「タイプ」で「世代」を選択します。「世代」フィールドを増分して2にします。
    2. フィールド2において、「ディメンション」で「Product」を、「タイプ」で「世代」を選択します。「世代」フィールドを増分して3にします。
    3. フィールド3において、「ディメンション」で「Product」を、「タイプ」で「属性ディメンション」を選択します。その下で「Ounces」を選択します。

      フィールド3には、Productディメンションに関連付けられたOunces属性ディメンションのメンバーが含まれています。このフィールドは、基本ディメンションであるProductディメンションの世代3のメンバーとして定義されたデータ・フィールドの直後にあるため、Essbaseで属性メンバー64は500-10および500-20のメンバーに関連付けられます。

    4. フィールド4において、「ディメンション」で「Product」を、「タイプ」で「属性ディメンション」を選択します。その下で「Caffeinated」を選択します。

      フィールド4では、追加の単一レベルの属性ディメンションから属性を関連付ける方法を示しています。基本ディメンションがすでに指定されているため、基本ディメンションのメンバーに関連付ける各属性に対して追加フィールドを定義するだけでかまいません。


      フィールド1で「Product」、「世代」、「2」が、フィールド2で「Product」、「世代」、「3」が、フィールド3で「Product」、「属性ディメンション」、「Ounces」が、フィールド4で「Product」、「属性ディメンション」、「Caffeinated」が指定されている、完成したattrprodルール・ファイルの図。

    ノート:

    数値範囲を操作する場合は、属性ディメンションを構築し、別のステップで関連付けを実行することが必要になることがあります。数値範囲の操作を参照してください。
  14. ルールを検証してから、保存して閉じます。エラーがある場合は、「有効なディメンション構築ルール・ファイルの要件」を参照してください。

  15. ディメンション構築ジョブを実行します。

  16. アウトラインを開きます。ディメンション構築の結果を確認する前に、表示される列を調整して、属性の関連付けが示されるようにします。アウトライン・ツールバーで、「表内で選択した列を表示します」アイコンを選択します。
    アウトライン・エディタのツールバーにある「表内で選択した列を表示します」アイコンの図。

  17. 下方向にスクロールします。プロパティ名「属性」で、「名前に表示」をクリックします。「適用して閉じる」をクリックします
  18. Productディメンションを展開してから、メンバー500を展開します。

    ディメンション構築ジョブの実行後、次のアウトラインに示されているようにメンバーの構築と属性の関連付けが行われます。メンバー64は、Ounces属性ディメンションの新規メンバーです。メンバー500、500-10および500-20は、基本ディメンションであるProductディメンションの新規メンバーであり、メンバー64に関連付けられています。


    アウトライン・エディタ内のattrprodアウトラインの図。Productディメンションが展開されており、500の新しい子が2つ表示されています(500-10と500-20)。500-10はCaffeinatedがTrue、Ouncesが64になっており、500-20は、CaffeinatedがFalse、Ouncesが64になっています。

ノート:

共有メンバーがプロトタイプ・メンバーの前に配置されるようなアウトラインは作成しないでください。作成すると、アウトラインの検証でエラーが発生する可能性があります。

属性の関連付けの更新

ディメンション構築での属性の関連付けに示されたルール・ファイルを使用して、属性の関連付けを変更することもできます。関連付けの変更を許可していることを確認してください。

メンバーが重複している場合は、属性を関連付けるフィールドに修飾メンバー名を含める必要があります。「ルール・ファイルを使用した修飾メンバー名の構築」を参照してください。

属性の関連付けの削除

属性の関連付けを削除するには、属性の関連付けを更新するときと同じプロセスを実行した後、さらに次のステップを実行します。

  • 「フィールド・プロパティ」ダイアログ・ボックスの「ディメンション構築プロパティ」タブで、属性フィールドに対してフィールドが空の場合に削除を選択します。(このオプションは、「アソシエーションの変更可能」が選択されていない場合は無視されます)。

  • データソースのフィールドは空またはNULLのままにしておきます。

数値範囲の操作

多くの場合、1回のディメンション構築操作で1つのルール・ファイルを使用して、数値範囲の属性ディメンションを動的に構築したり、基本ディメンションのメンバーを範囲と関連付けたりすることができます。しかし、次のような場合は、属性ディメンションの構築と、属性と基本ディメンションの適切なメンバーとの関連付けに1つずつ、2つのルール・ファイルを使用する必要があります。

  • メンバーごとに範囲のサイズが異なる場合。

    たとえば、人口が少ない町や市には狭い範囲を定義し、中規模の市にはさらに広い範囲を定義し、人口が多い市には1,000,000より大きい範囲を定義できます。

  • 範囲がマルチレベルの属性ディメンションのメンバーである場合。

    たとえば、Population属性ディメンションに、人口の範囲がTowns、CitiesおよびMetropolitan Areasとして分類されているレベル1のメンバーがあるような場合です。

次に示すPopulation属性ディメンションは、両方の場合を示しています。Populationは、マルチレベルの数値属性ディメンションで、レベル0メンバーを持ち、様々なサイズ範囲を表します。

図15-7 様々なサイズ範囲を持つ数値属性ディメンション


このイメージは、イメージの前のテキストで説明されている、様々なサイズ範囲を持つ数値属性ディメンションを示しています。

1つのルール・ファイルを使用して母集団ディメンションを構築し、別のルール・ファイルで母集団ディメンションのメンバーを基本ディメンションのメンバーの属性として関連付ける必要があります。

範囲に対応する属性ディメンションの構築

まず、世代、レベルまたは親子による構築方法を使用するキューブを作成します。属性ディメンションを構築するには、ルールで次の情報を指定します。

ソース・データは、昇順の属性順になっている必要があります。範囲のサイズが異なる場合は、ソース・データに属性範囲ごとのレコードを含める必要があります。

ノート:

後の構築操作で、属性メンバーを既存メンバーの間に挿入することはできません。

世代を使用する方法でアウトラインを構築するには、数値属性値に基づいてソース・データを昇順に並べる必要があります。次に示すように、ルールのフィールドを定義します。

次の例は、Sample Basicに基づいたものであり、世代による構築方法を使用してアプリケーション・ワークブックにエクスポートして、再度インポートします。

図15-8 範囲を持つ数値属性ディメンションを構築するためのルール


画像の前のテキストで説明されている、範囲を持つ数値属性ディメンションを構築するためのルール。

基本ディメンション・メンバーと範囲属性の関連付け

数値属性ディメンションの範囲の構築後に、基本ディメンションのメンバーをその属性に関連付けるルールが必要になります。ソース・データには、基本ディメンションのメンバー用のフィールドとデータ値用のフィールドがあります。Essbaseでは、これらのフィールドを使用して適切なPopulation属性を関連付けます。

次に示すようにルールを定義します。

図15-9 数値範囲属性を関連付けるためのルール


基本ディメンションのメンバーと数値範囲属性を関連付けるためのルール。新しい世代3の都市は、人口規模に基づいて市場に追加されて関連付けられます。

関連付けフィールド(たとえば、Field 3: Market、Attribute Dimension、Population)を定義するときには、属性メンバーを範囲内に設定します。

ノート:

人口3,227,707人の都市Bostonが含まれるルールは、属性ディメンションの範囲(最大3,000,000までの範囲)を超えています。属性ディメンションの範囲を超える値をソース・データ内で許可するには、1000000のような範囲サイズを入力します。Essbaseでは、範囲サイズを使用して、必要に応じて、最も値が大きい既存メンバーを超えるメンバー、または最も値が小さい既存メンバーに満たないメンバーを属性ディメンションに追加します。

注意:

基本ディメンションのメンバーを属性ディメンションのメンバーと関連付けた後、属性ディメンションに新規メンバーを挿入したり、属性ディメンションのメンバー名を変更したりする処理を手動で行う場合は、既存の属性の関連付けを無効にすることができます。数値範囲属性が「範囲の一番上」と定義されていて、100、200、500および1000のメンバーを含む属性ディメンションがあるとします。値556の基本ディメンション・メンバーは、属性1000に関連付けられます。属性ディメンション・メンバーの名前を500から600に変更すると、値556の基本ディメンション・メンバーの関連付けは無効になります。この基本メンバーはまだ属性1000に関連付けられていますが、属性600に関連付ける必要があります。新規メンバーの挿入や既存メンバーの名前変更を手動で行う場合、関連付けが正しいことを確認するために、ディメンション構築手順を再実行して、基本メンバーを変更された属性ディメンションと関連付けます。たとえば、属性の関連付けの手順を再実行すると、値556の基本ディメンションのメンバーが新しい属性600に正しく関連付けられます。

関連付けの妥当性の確認

属性の関連付けの妥当性を確認するには、正しいディメンション構築オプションを選択し、適切な順序で構築を実行する必要があります。

  • 属性ディメンションのメンバーの追加または変更: 基本ディメンションのメンバーを数値属性範囲と関連付けた後に、属性ディメンションで新規メンバーの挿入または既存メンバーの名前変更を手動で実行する場合は、次のいずれかのタスクを実行して、属性と基本メンバーの関連付けが正しいことを確認します。

    • 基本メンバーを変更後の属性ディメンションに関連付けるディメンション構築手順を再実行します。

    • アウトライン・エディタを使用して、手動ですべての基本ディメンションの関連付けを見直し、必要な場合は修正します。

  • 属性ディメンションのメンバーの削除: 新しいデータでディメンションを再構築できるように、属性ディメンションのメンバーをすべて削除できます。

  • 基本ディメンションへのメンバーの追加: 同じルール・ファイルを使用して、基本ディメンションに新規メンバーを追加すると同時に、これらの新規メンバーを数値範囲属性に関連付けることができます。範囲サイズの値を指定します。

    Essbaseで、最も値が大きい属性メンバーよりも大きくて範囲サイズを超える基本ディメンション値、または最も値が小さい属性メンバーより小さくて範囲サイズを超える基本ディメンション値が検出された場合、属性ディメンション内で範囲外の値に対応するメンバーが作成されます。

    たとえば、次のイメージでは、数値範囲属性が「範囲の一番上」と定義されています。Population属性ディメンションで最も値が大きいメンバーは、3000000です。ソース・データに人口4,420,000のレコードが含まれていて、範囲サイズが1000000の場合、Essbaseでは属性ディメンションに4000000と5000000の2つのメンバーが追加され、値4,420,000の基本メンバーと属性5000000が関連付けられます。

    図15-10 属性範囲メンバーの動的な追加


    このイメージは、イメージの前のテキストで説明されている、属性ディメンションの新規メンバーを示しています。

範囲メンバーと基本ディメンション・メンバーを同時に追加する場合、Essbaseでは属性ディメンションの新規メンバーの別名は作成されません。属性ディメンションの新規メンバーの範囲値を説明する別名が必要な場合は、別名を別途追加する必要があります。

属性および基本ディメンションの構築に関するルールの確認

この項では、ディメンション構築によって属性の定義と関連付けを行う固有の領域について説明します。

準備

  • ディメンション構築を実行する前に、アウトラインの属性メンバー名のフォーマットを定義する必要があります。

    属性ディメンションのメンバー名の設定を参照してください。

  • ルール・ファイルに新規の属性ディメンションを定義することは、ルール・ファイルに新規の標準ディメンションを定義することとは異なります。

ルール・ファイル内のフィールドの定義

単一レベルの属性ディメンションの構築に使用されるルール・ファイルでは、マルチレベルの属性ディメンションのメンバーを構築および関連付けるルール・ファイルよりも、必要なフィールド・タイプは少なくなります。

  • 単一レベルの属性ディメンションの場合、属性値が含まれるフィールドを基本ディメンションのメンバーに関連付けられるフィールドとして定義します。ディメンション構築では、この定義したフィールドを使用して、属性ディメンションに新規メンバーを追加します。

    ディメンション構築での属性の関連付けを参照してください。

  • マルチレベルの属性ディメンションの場合、Essbaseに、属性ディメンション内の各世代またはレベルを定義するフィールドと関連付けを定義するフィールドが必要です。新しいフィールド・タイプAttribute Parentを使用して、関連付けられる属性メンバーの親メンバーになるフィールドを識別します。

新規属性メンバーの追加の制御

Essbaseで、属性ディメンションのメンバーではない属性データ値が検出された場合、その値は自動的に新規メンバーとして追加されます。

属性ディメンションに新規メンバーが追加されないようにするには、属性ディメンションのメンバーを作成しないオプションを選択します。

関連付けの制御

次の関連付けを制御できます。

  • 属性の関連付けに対する変更

    属性ディメンションの「アソシエーションの変更可能」オプションを選択します。

  • 基本メンバーと値の範囲を表す属性の自動関連付けの有効化

    範囲のサイズを定義します。

    ディメンション構築のフィールド・タイプ情報の設定」を参照してください。

  • 属性の同時関連付け

    ...として追加する方法以外の構築方法を使用します。

    「ディメンション構築方法」を参照してください。

ノート:

属性はアウトラインでのみ定義されるため、データ・ロード・プロセスによる属性への影響はありません。