高度な次元構築の概念の理解

この項の内容:

構築方法の理解

世代参照の使用

レベル参照の使用

親子参照の使用

新規メンバーのリストの追加

属性次元の構築と属性の関連付け

ルール・ファイルを使用した共有メンバーの作成

重複するメンバー・アウトラインの構築

この章のすべての例は、Sample.Basicデータベースに基づいています。

構築方法の理解

データ・ソース内のデータのタイプに基づいて構築方法を選択します。選択した構築方法によって、Essbaseでアウトライン内の次元、メンバーおよび別名を追加、変更または削除するときに使用するアルゴリズムが決まります。

表43のガイドラインを使用して、データ・ソースの適切な構築方法を選択します:

表 43. 構築方法のガイドライン

各レコード内のデータのタイプ

目的の操作

構築方法[1]

フィールド・タイプ情報

トップダウン・データ

各レコードでは、親の名前、子の名前、その子の子などを指定します。

年、四半期、月

既存の次元およびメンバーのプロパティを変更する

世代参照

各フィールドの世代番号。

ボトムアップ・データ

各レコードでは、メンバーの名前、その親の名前、その親の親の名前などを指定します。

月、四半期、年

  • 異なる世代にロール・アップする共有メンバーを作成する

  • 既存の次元およびメンバーのプロパティを変更する

レベル参照

各フィールドのレベル番号。

子を後ろに持つ親

各レコードでは、親の名前と新しい子メンバーの名前を、この順序で指定します。ただし、他の情報も指定できます。

Cola、Diet Cola

  • 異なる世代にロール・アップする共有メンバーを作成する

  • 非レベル0のメンバーを共有する

  • 既存の次元およびメンバーのプロパティを変更する

親子参照

フィールドが親であるか子であるか。フィールド番号は0です。

新規メンバーのリスト

各データ・ソースには、新規メンバーがリストされています。このデータ・ソースでは、これらのメンバーがアウトラインのどこに属しているかは指定されません。Essbaseでは、これらのメンバーの追加場所を決定するためのアルゴリズムを提供します。

Jan、Feb、Mar、April

すべてのメンバーを、既存の親(ダミーの親である可能性もある)の子として追加する

指定された親の子として追加

 

800-10、800-20

すべてのメンバーを次元の末尾に追加する

最下位レベルの兄弟として追加

 

800-10、800-20

新規の各メンバーを、類似メンバーが含まれている次元に追加する

一致文字列を持つメンバーに兄弟として追加

 

基本次元メンバーとその属性のリスト

Cola 16oz Can、Root Beer 14oz Bottle

属性次元にメンバーを追加し、その追加したメンバーを基本次元の適切なメンバーに関連付ける

ソース・データの構成に依存する世代、レベルまたは親子参照

各フィールドの番号。

番号は、基本次元の関連メンバーの世代番号かレベル番号、あるいはゼロのいずれかになります。

1 レベル参照の構築を使用する場合、そのメンバーと同じ名前の別名は作成できません。この制限は、世代参照の構築方法など、他の構築方法を使用する場合は適用されません。

世代参照の使用

トップダウンのデータ・ソースは、左から右の順で、最上位レベルから最下位レベルへと編成されます。各レコードは最も全般的な情報から始まり、より詳細な情報へと進んでいきます。新規メンバーの名前は、レコードの末尾にあります。トップダウンのデータ・ソースを使用する場合、世代参照の構築方法を使用します。ルール・ファイルに、世代番号とデータ・ソースの各フィールドのフィールド・タイプを指定します。

Essbaseでは、次元内のメンバーに対し、その次元内でのメンバーの階層的な位置に従って番号が付けられます。この番号を世代参照と呼びます。次元は常に世代1です。特定の次元の同じ分岐にあるすべてのメンバーを世代と呼びます。世代には、次元(次元1)を基準とした位置に従って、トップダウンで番号が付けられます。

たとえば、図66で示されているように、製品次元は世代1です。製品次元のメンバー100は世代2になります。100のメンバーである100-10などは世代3になります。世代参照の構築方法を使用するには、ルール・ファイルに世代参照番号を指定します。

図 66. 世代

この図は、この図の前のテキストで説明されている世代参照番号を示しています。

図67の上半分は、トップダウンのデータ・ソースです(GENREF.TXT)。このデータ・ソースは、製品次元の構築に使用されます。同じ図の下半分は、データ・ソースのルール・ファイルです(GENREF.RUL)。このルール・ファイルでは、データ・ソース内の各フィールドに世代番号を指定できます。フィールド・タイプ情報の設定を参照してください。

図 67. 世代構築のルール・ファイル

この図は、この図の前のテキストで説明されている世代構築のルール・ファイルを示しています。

図68は、Essbaseによって、GENREF.TXTデータ・ソースとGENREF.RULルール・ファイルから構築されたツリーです:

図 68. 世代参照

この図は、世代構築時に作成される新規メンバーを示しています。

空フィールドの処理

世代参照の構築方法を使用する場合は、NULL値を処理するように設定できます。NULL値の処理により、データ・ソースから空フィールド(NULLフィールド)が検出されたときに実行されるEssbaseのアクションが指定されます。

NULL値の処理が使用可能になっていない場合、EssbaseではNULL値を持つすべてのレコードが除外され、エラー・ログにエラーが書き込まれます。

NULL値の処理が使用可能になっている場合、EssbaseでNULLは次のように処理されます:

  • 欠落フィールド: EssbaseによりGENERATIONフィールドの位置にNULLがあることが検出された場合は、その次のGENERATIONフィールドが移動され、欠落フィールドが置き換えられます。

    次の例では、GEN3,Products列にはフィールドがありません:

                GEN2,Products   GEN3,Products   GEN4,Products
    100                             100-10a
             

    Essbaseでこのレコードを読み取ると、GEN4フィールド(100-10a)がGEN3に移動します。データ・ソースの外観は、次の例のようになります:

                GEN2,Products   GEN3,Products   GEN4,Products
    100             100-10a
             
  • セカンダリ・フィールドの前の欠落フィールド: セカンダリ・フィールドの直前にNULLがある場合、Essbaseではセカンダリ・フィールドは無視されます(セカンダリ・フィールド・タイプには、別名、プロパティ、式、重複した世代、重複した世代の別名、通貨名、通貨のカテゴリ、属性の親、UDAおよび属性次元の名前があります)。

    次の例では、GEN2,Products列やALIAS2, Products列にフィールドがありません:

                GEN2,Products   ALIAS2,Products   GEN3,Products   GEN4,Products
                    Cola              100-10          100-10a
             

    Essbaseでこのレコードを読み取ると、ALIAS2フィールドは無視され、GEN3フィールド(100-10)がGEN2に移動、GEN4フィールド(100-10a)がGEN3に移動します。データ・ソースの外観は、次の例のようになります:

                GEN2,Products   ALIAS2,Products   GEN3,Products   GEN4,Products
    100-10          Cola              100-10a
             
  • 欠落したセカンダリ・フィールド: セカンダリ・フィールドの位置にNULLがある場合、EssbaseによってセカンダリNULLフィールドは無視され、ロードが続行されます。

    次の例では、ALIAS2,Products列にフィールドがありません:

                GEN2,Products   ALIAS2,Products   GEN3,Products   GEN4,Products
    100                               100-10          100-10a
             

    Essbaseでこのレコードを読み取ると、ALIAS2フィールドが無視され、その他のフィールドはロードされます。

レベル参照の使用

ボトムアップのデータ・ソースでは、各レコードにより、次元の単一のメンバーが定義されます。定義はメンバーに関する最も詳細な情報から始まり、より全般的な情報になっていきます。通常、レコードでは新規メンバーの名前が指定され、さらにそのメンバーの親の名前、親の親の名前などが指定されます。

レベルはボトムアップの階層構造で定義されています。たとえば、図69のアウトラインでは、最下位レベルのメンバーが製品次元の分岐の下部にあります。

図 69. 世代番号とレベル番号

この図は、各メンバーの世代番号およびレベル番号を示しています。

図69のアウトラインを構築するには、次のボトムアップのデータ・ソースを使用できます:

      100-10-12  100-10  100
100-20-12  100-20  100
   

レベル参照の構築では、最下位レベルのメンバーから、左から右の順で並べられます。レベル0メンバーは最初のフィールド、レベル1メンバーは2番目のフィールドに置かれ、以下同様に続きます。これは、世代参照(トップダウン)のデータ表示とは反対の編成です。

次の例では、ルール・ファイルは、レベル参照の構築方法を使用して製品次元にメンバーを追加しています。ルール・ファイルでは、データ・ソースの各フィールドのレベル番号およびフィールド・タイプを指定します(フィールド・タイプ情報の設定を参照)。データ・ソースの最初の列は、新規メンバー(600-10-11、600-20-10および600-20-18)を含みます。2番目の列は、新規メンバーの親(600-10および600-20)を含み、3番目の列は親の親(600)を含みます。

図 70. レベル構築のルール・ファイル

この図は、この図の前のテキストで説明されているレベル構築のルール・ファイルを示しています。

たとえば、図71のようなツリーを構築するには、図70を使用してデータ・ソース(LEVEL.TXT)とルール・ファイル(LEVEL.RUL)を設定します。

図 71. レベル

この図は、レベル構築中に作成された新規メンバーを示しています。

空フィールドの処理

レベル参照の構築方法を使用する場合は、NULL値を処理するように設定できます。NULL値の処理により、データ・ソースから空フィールド(NULLフィールド)が検出されたときに実行されるEssbaseのアクションが指定されます。

NULL値の処理が使用可能になっていない場合、EssbaseではNULL値を持つすべてのレコードが除外され、エラー・ログにエラーが書き込まれます。

NULL値の処理が使用可能になっている場合、EssbaseでNULLは次のように処理されます:

  • 欠落フィールド: EssbaseによりLEVELフィールドの位置にNULLがあることが検出された場合は、Essbaseによりその次のLEVELフィールドが移動され、欠落フィールドが置き換えられます。

    次の例では、LEVEL0,Products列にフィールドがありません:

                LEVEL0,Products   LEVEL1,Products   LEVEL2,Products
                      100-10            100
             

    Essbaseでこのレコードを読み取ると、LEVEL1フィールド(100-10)がLEVEL0、LEVEL2フィールド(100)がLEVEL1に移動します。データ・ソースの外観は、次の例のようになります:

                LEVEL0,Products   LEVEL1,Products   LEVEL2,Products
    100-10            100
             
  • セカンダリ・フィールドの前の欠落フィールド: セカンダリ・フィールドの直前にNULLがある場合、Essbaseではセカンダリ・フィールドは無視されます(セカンダリ・フィールド・オプションには、別名、プロパティ、式、重複したレベル、重複したレベルの別名、通貨名、通貨のカテゴリ、属性の親、UDAおよび属性次元の名前があります)。

    次の例では、LEVEL0,Products列にフィールドがありません:

                LEVEL0,Products   ALIAS0,Products   LEVEL1,Products   LEVEL2,Products
                      Cola              100-10            100
             

    Essbaseでこのレコードを読み取ると、ALIAS0フィールドは無視され、LEVEL1フィールド(100-10)がLEVEL0、LEVEL2フィールド(100)がLEVEL1に移動します。データ・ソースの外観は、次の例のようになります:

                LEVEL0,Products   ALIAS0,Products   LEVEL1,Products   LEVEL2,Products
    100-10             Cola              100
             
  • 欠落したセカンダリ・フィールド: セカンダリ・フィールドの位置にNULLがある場合、EssbaseによってセカンダリNULLフィールドは無視され、ロードが続行されます。

    次の例では、ALIAS0,Products列にフィールドがありません:

                LEVEL0,Products   ALIAS0,Products   LEVEL1,Products   LEVEL2,Products
    100-10a           100-10            100
             

    Essbaseでこのレコードを読み取ると、ALIAS0フィールドが無視され、その他のフィールドはロードされます。

親子参照の使用

データ・ソースのすべてのレコードが、新規メンバーの名前と追加先の親の名前を指定する場合は、親子参照構築方法を使用します。

データベースのメンバーは、互いに親子関係で存在します。図72は、製品次元の親と子の関係が明確になっている部分を示しています。Productは100の親です。100はProductの子で、100-10、100-10-12および100-10-16の親でもあります。100-10、100-10-12および100-10-16はすべて100の子です。

図 72. 親と子

この図は、この図の前のテキストで説明されている親と子の関係を示しています。

親子データ・ソースには2つ以上の列、つまり親の列と子の列がこの順番で含まれている必要があります。データ・ソースには、他の情報(たとえば新規メンバーの別名、属性、プロパティなど)の列も含めることができます。親子データ・ソース内のレコードでは、複数の親または複数の子を指定できません。また、親の列と子の列の順序を逆にすることもできません。

親子構築では、ルール・ファイルで親の列と子の列を指定します。たとえば図73の上半分はデータ・ソース(PARCHIL.TXT)で、このデータ・ソース内の各レコードは、親の名前とその子の名前をこの順序で指定しています。図の下半分は、親の列と子の列を指定するルール・ファイルです(PARCHIL.RUL)。さらに、この例では、別名に子フィールドが関連付けられています。

図 73. 親子構築のルール・ファイル

この図は、この図の前のテキストで説明されている親子構築のルール・ファイルを示しています。

図74は、Essbaseにより、このデータ・ソースとルール・ファイルから構築されたツリーです。

図 74. 親と子

この図は、親子構築の際に作成されるアウトラインを示しています。

注:

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

新規メンバーのリストの追加

データ・ソースが新規メンバーのリストで構成されていて、その祖先が指定されていない場合、アウトライン内のどこにメンバーを追加するかをEssbaseで決定する必要があります。このタイプのデータ・ソースでは、次の構築方法を使用できます:

Essbaseですべての新規メンバーをアウトラインに追加した後、アウトライン・エディタを使用して、新規メンバーを正しい位置に移動する必要が生じることがあります。次元およびメンバーの位置付けを参照してください。

注:

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

文字列の一致に基づくメンバーの追加

文字列と既存のメンバーを一致させることにより、データ・ソースから既存の次元へ新規メンバーを追加できます。Essbaseでデータ・ソース内に新規メンバーが見つかった場合、アウトラインで同様のテキストのメンバー名がスキャンされ、新規メンバーは、最も一致率の高い文字列を持つメンバーの兄弟として追加されます。

たとえば、図75(SIBSTR.TXT)は、製品次元に追加される2つの新規メンバー(100-11および200-22)を含みます。新規メンバーは、製品次元の文字列と同様に、3桁の数字、ダッシュおよび2桁の数字で構成されます。

例のメンバーをデータベースに追加するには、ルール・ファイル内に表44の値を設定します:

表 44. 文字列の一致を使用したメンバーの追加の例

フィールド

参照

フィールド1(製品)

  • このフィールドにはフィールド・タイプを選択しない

  • フィールドの次元を製品に設定(図74のように、フィールド1は製品次元として表示される)

フィールド・タイプ情報の設定

フィールド2からフィールド6

フィールドを無視

フィールドの無視

製品次元

「一致する文字列を持つメンバーの兄弟として追加」の構築方法を選択

構築方法の選択

図 75. 一致文字列を持つ兄弟としてメンバーを追加するためのルール・ファイルのフィールド・セット

この図は、一致文字列を使用して、既存のメンバーの兄弟としてメンバーを追加するためのルール・ファイルを示しています。

図76は、Essbaseにより、このデータ・ソースとルール・ファイルから構築されたツリーです。100-11は100の兄弟として追加され、200-22は200の兄弟として追加されます。

図 76. 一致文字列を持つ兄弟としてメンバーが追加されたツリー

この図は、この図の前のテキストで説明されている、既存のメンバーの兄弟として追加された新規メンバーを示しています。

最下位レベルの兄弟としてのメンバーの追加

最下位レベルの次元(レベル0の分岐)のメンバーの兄弟として、データ・ソースから新規メンバーを追加できます。Essbaseでデータ・ソース内に新規メンバーが見つかった場合、アウトラインでレベル0の分岐のメンバーがスキャンされます。新規メンバーは、このメンバーの兄弟として追加されます。

注:

アウトラインに、このレベルのメンバーの複数のグループが含まれている場合は、Essbaseによって、最初に検出されたグループに新規メンバーが追加されます。

たとえば、図77の、データ・ソース(SIBLOW.TXT)およびルール・ファイル(SIBLOW.RUL)は、メジャー次元に追加する新規メンバー(A100-10およびA100-99)を含みます。

図 77. 最下位レベルの兄弟としてメンバーを追加するためのルール・ファイルのフィールド・セット

この図は、最下位レベルの既存メンバーの兄弟としてメンバーを追加するためのルール・ファイルを示しています。

例のメンバーをデータベースに動的に追加するには、ルール・ファイル内に表45の値を設定します:

表 45. 最下位レベルの兄弟としてのメンバーの追加の例

フィールド

参照

フィールド3(メジャー)

  • このフィールドにはフィールド・タイプを選択しない

  • フィールドの次元をメジャーに設定する(図77のように、フィールド3はメジャーとして表示される)

フィールド・タイプ情報の設定

フィールド1、2、4、5および6

フィールドを無視

フィールドの無視

メジャー次元

「最下位レベルの兄弟として追加」の構築方法を選択

構築方法の選択

図78は、Essbaseにより、このデータ・ソースとルール・ファイルから構築されたツリーです。A100-20およびA100-99はMarginの兄弟として追加されます。

図 78. 最下位レベルの兄弟としてメンバーが追加されたツリー

この図は、この図の前のテキストで説明されている、Marginの兄弟として追加された新規メンバーを示しています。

メンバーの指定した親への追加

すべての新規メンバーを、指定された親(通常はダミーの親)の子として追加できます。Essbaseですべての新規メンバーをアウトラインに追加した後、追加されたメンバーを確認して、アウトライン・エディタで移動または削除します。

Essbaseでデータ・ソース内に新規メンバーが検出されると、これらのメンバーはユーザーが定義した親の子として追加されます。親は、次元構築を開始する前にアウトラインに追加しておく必要があります。

たとえば、図79のデータ・ソース(SIBPAR.TXT)には、製品次元(フィールド1)の2つの新規メンバー(600-54と780-22)が含まれています。以前に、製品次元の下にNewProductsというメンバーを追加したとします。

図 79. 指定された親の子としてメンバーを追加するためのルール・ファイルのフィールド・セット

この図は、指定された親の子としてメンバーを追加するためのルール・ファイルを示しています。

データベースのNewProductsメンバーの下に例のメンバーを追加するには、ルール・ファイル内に表46の値を設定します:

表 46. 指定された親の子としてのメンバーを追加する例

フィールド

参照

フィールド1(製品)

  • このフィールドにはフィールド・タイプを選択しない

  • フィールドの次元を製品に設定する(図79のように、フィールド1は製品として表示される)

フィールド・タイプ情報の設定

フィールド2からフィールド6

フィールドを無視

フィールドの無視

製品次元

「子として追加」の構築方法を選択

構築方法の選択

「子として追加」テキスト・ボックスにNewProductsと入力します。

図80は、Essbaseにより、このデータ・ソースとルール・ファイルから構築されたツリーです。600-54および780-22はNewProductsの兄弟として追加されます。

図 80. 指定された親の子としてメンバーが追加されたツリー

この図は、この図の前のテキストで説明されている、NewProductsの子として追加された新規メンバーを示しています。

属性次元の構築と属性の関連付け

データ・ソースに属性情報が含まれている場合は、1つ以上のルール・ファイルを使用して、属性次元の構築と基本次元のメンバーへの属性の関連付けを行う必要があります。

ルール・ファイルを使用して、属性次元の動的構築、メンバーの追加や削除、および属性の関連付けの設定や変更を行うことができます。

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

  • 基本次元が存在しない場合は、まず基本次元を構築する必要があります。

  • 属性次元を構築する必要があります。

  • 基本次元のメンバーを、属性次元のメンバーに関連付ける必要があります。

これらの操作を実行するために、次のいずれかの方法を使用できます:

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

  • 属性次元を構築した後、1つのルール・ファイルで関連付けを行います。基本次元は別の手順で構築したか、またはすでに存在しているものとします。この場合、属性次元の構築と、その属性を基本次元のメンバーと関連付ける処理をワン・ステップで実行できます。このためには、ルール・ファイルに属性関連付けを定義するだけです。属性の関連付けを参照してください。

  • 属性次元を構築した後、別のルール・ファイルを使用して関連付けを行います。基本次元は別の手順で構築したか、またはすでに存在しているものとします。この場合、属性次元の構築と、その属性を基本次元のメンバーと関連付ける処理を別々のステップで実行できます。属性次元を構築した後、属性メンバーを基本次元のメンバーと関連付けます。この方法は、異なるサイズの範囲を表すメンバーを持つ、マルチレベルの数値属性次元を構築するときに使用します。

次の項では、属性次元の構築方法を説明します。

属性次元の構築

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

属性次元は、次のいずれかの方法で構築できます:

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

属性次元の構築用のルール・ファイルを定義する際、基本次元と、属性次元ファイルの名前を指定します。

属性の関連付け

属性次元を構築すると同時にその属性メンバーを基本次元のメンバーに関連付けるか、あるいは個別の手順でこれらの作業を実行するかにかかわらず、この項での説明に従ってフィールドを定義します。

注:

マルチレベルの属性次元を扱う場合、または数値、ブールあるいは日付のタイプの属性次元を扱う場合、ルール・ファイルに追加フィールドが必要になります。マルチレベルの属性次元の扱いを参照してください。

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

属性次元メンバーのフィールド・タイプを属性次元の名前として定義し、関連付けられた基本次元のメンバーの世代番号またはレベル番号を使用して、基本次元名を指定します。たとえば、図81ATTRPROD.RULファイルでは、フィールド定義Ounces3,Productによって、このフィールドにOunces属性次元のメンバーが含まれることを指定しています。このフィールドの各メンバーは、基本次元である製品次元の世代3メンバーとして定義されたデータ・フィールドに関連付けられています。このフィールド定義に基づいて、Essbaseでは、属性64がメンバー500-10に関連付けられます。

図 81. 属性の関連付けのルール・ファイル

この図は、属性次元メンバーを基本次元メンバーに関連付けるためのルール・ファイルを示しています。

Essbaseでは、属性列を使用して、属性次元のメンバーを構築できます。データ準備エディタの「次元構築の設定」ダイアログ・ボックスの「次元構築の設定」タブで、基本次元に対して「メンバーを作成しない」オプションを選択解除します。Oracle Essbase Administration Services Online Helpの「メンバー・プロパティの設定」を参照してください。

数値の範囲を扱う場合は、属性次元の構築と関連付けを別々の手順で行う必要が生じることがあります。数値範囲の扱いを参照してください。

図81のCaffeinated3,Productフィールドは、追加の単一レベルの属性次元からの属性関連付けの方法を示しています。基本次元はすでに指定されているので、基本次元のメンバーと関連付ける各属性に対して追加フィールドを定義するだけです。

図81のファイルは、図82のアウトラインに示すように属性を関連付けます。メンバー64はOunces属性次元の新規メンバーです。メンバー500、500-10および500-20は、基本次元である製品の新規メンバーで、メンバー64に関連付けられています。

図 82. 属性の関連付け

この図は、この図の前のテキストで説明されている、基本次元および属性次元の新規メンバーを示しています。

属性の関連付けの更新

図81のルール・ファイルを使用して、属性関連付けを変更することもできます。関連付けの変更を許可していることを確認してください。データ準備エディタの「次元構築の設定」ダイアログ・ボックスの「次元構築の設定」タブで、基本次元に対して「関連付けの変更可能」を選択します。Oracle Essbase Administration Services Online Helpの「メンバー・プロパティの設定」を参照してください。

注:

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

属性関連付けの削除

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

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

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

マルチレベルの属性次元の扱い

マルチレベル、数値、ブールおよび日付の属性次元には、重複したレベル0メンバーを含めることができます。たとえば、製品次元と関連付けて、2つのレベルのSize属性次元を作成できます。レベル1では男性と女性でサイズを分類します。レベル0メンバー(属性)は実際のサイズです。WomenとMenそれぞれの下に、8という名前のメンバーを作成できます。

属性がマルチレベル、数値、ブールまたは日付のいずれかの属性次元に含まれる場合、ソース・データには、その属性次元のすべての世代またはレベルの列が含まれている必要があります。ルール・ファイル内で、属性次元のレベルを構成するすべてのフィールドをコピーする必要があります。最初の属性フィールド・セットを定義して、属性次元を構築します。2番目の属性フィールド・セットを定義して、その属性を適切な基本次元メンバーと関連付けます。正しい属性と確実に関連付けるには、親フィールドをコピーし、このコピーをフィールド・タイプAttribute Parentとして設定することにより、属性フィールドの親フィールドを指示します。

ルール・ファイル内のフィールドの位置は重要です。

  • コピー対象の属性次元フィールドまたは関連付けを定義するフィールドを、基本次元メンバーのフィールドの右隣に置きます。

  • マルチレベルの属性次元の場合、属性の親フィールドをその子フィールドの左隣に置きます。

次の手順では、マルチレベルの属性次元を構築したり、そのメンバーを基本次元のメンバーに関連付けたりするために、ルール・ファイル内でどのようにフィールドを定義するかを説明します。この例では、レベル参照の構築方法を使用します。

  1. ルール・ファイル内のフィールド1とフィールド2に対し、標準次元を定義する場合と同じ方法で属性次元フィールドを定義し、タイプ(レベルまたは世代)、番号および次元名を指定します。

    Essbaseでは、フィールド1とフィールド2を使用して、属性次元が構築されます。

  2. 基本次元を構築するためのフィールドを定義します。

    次の例では、製品次元のレベル0とレベル1のフィールドを定義します。図83は、この段階でのルール・ファイルのフィールドを示します。

    図 83. 関連付けフィールドを追加する前のマルチレベルの属性次元の定義

    この図は、この図の前のテキストで説明されている、関連付けフィールドを追加する前のマルチレベルの属性次元の定義用のルール・ファイルを示しています。
  3. 関連付けを定義するには、レベル0の属性を含むフィールドをコピーします。

    この例では、フィールド1をコピーします。

    1. フィールド・タイプに属性次元名を使用して、Essbaseが属性(たとえばSize0)を関連付ける、基本次元メンバーの世代番号またはレベル番号を指定します。

    2. 基本次元(たとえば、Product)を指定します。

    3. Essbaseが属性を関連付ける、基本次元のフィールドの右隣に新規のフィールドを移動します。

      この例では、フィールドLevel0,Productの右に新しいフィールドを移動します。

  4. 属性フィールドの親を含むフィールドをコピーします。

    この例では、フィールド2をコピーします。

    1. この新規フィールドのフィールド・タイプを「属性の親」として設定し、Essbaseが属性(たとえばATTRPARENT0)を関連付ける基本メンバーの世代番号またはレベル番号を指定します。

    2. 属性次元(たとえばSize)を指定します。

    3. 手順3で作成した属性の関連付けフィールドの左隣にATTRPARENTフィールドを移動します。

図84のように、ルール・ファイルにフィールド定義が追加されました。このフィールド定義によって、属性次元Sizeを構築し、Sizeのメンバーに基本次元であるProduct次元の適切なメンバーを関連付けることができます。

図 84. マルチレベルの属性次元を構築するソース・データとルール・ファイル

この図は、この図の前のテキストで説明されている、関連付けフィールドを含むマルチレベルの属性次元の定義用のルール・ファイルを示しています。

図84のデータを使用して次元構築を実行すると、Essbaseにより、Size属性次元が構築され、そのメンバーが基本次元の適切なメンバーに関連付けられます。図85は、更新されたアウトラインです。

図 85. マルチレベルの属性次元

この図は、この図の前のテキストで説明されている、マルチレベルの属性次元の構築後のアウトラインを示しています。

数値範囲の扱い

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

  • 各メンバーに対する範囲のサイズが異なる場合。

    たとえば、比較的人口の少ない町や市に対して狭い範囲を定義し、中規模の人口の市に対して比較的広い範囲を定義し、大規模な人口の市に対して1,000,000より大きい範囲を定義するような場合です。

  • 範囲がマルチレベルの属性次元のメンバーである場合。

    たとえば、Towns、CitiesおよびMetropolitan Areasとして人口の範囲が分類されるレベル1のメンバーを、Population属性次元が持つような場合です。

図86のPopulation属性次元は、両方の場合を示しています。Populationは、マルチレベルの数値属性次元で、レベル0メンバーを持ち、異なるサイズの範囲を表します。

図 86. 異なるサイズの範囲を持つ数値属性次元

この図は、この図の前のテキストで説明されている、異なるサイズの範囲を持つ数値属性次元を示しています。

1つのルール・ファイルでPopulation次元を構築し、別のルール・ファイルでPopulation次元のメンバーを、その基本次元のメンバーの属性として関連付ける必要があります。

範囲に対応する属性次元の構築

最初に、属性次元を構築するため、世代、レベルまたは親子構築方法を使用するルール・ファイルを作成します。このルール・ファイル内に、次の情報を指定します:

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

注:

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

世代を使用する方法で図86のアウトラインを構築するには、数値属性値に基づいてソース・データを昇順に配列する必要があります。図87のルール・ファイル内にフィールドを定義します。図87は、別名と属性を関連付ける方法も示しています。

図 87. 範囲を持つ数値属性次元を構築するルール・ファイル

この図は、この図の前のテキストで説明されている、範囲を持つ数値属性次元を構築するルール・ファイルを示しています。

基本次元メンバーの範囲属性への関連付け

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

図88のように、ルール・ファイルを定義します。

図 88. 数値範囲属性の関連付けのルール・ファイル

この図は、この図の前のテキストで説明されている、基本次元メンバーと数値範囲属性の関連付けのルール・ファイルを示しています。

関連付けフィールドを定義する際(たとえば、Population3,Market)、範囲内に属性メンバーを配置します。データ準備エディタの「フィールド・プロパティ」ダイアログ・ボックスの「次元構築プロパティ」タブで、「属性メンバーを範囲内に配置」を選択します。

注:

図88にある人口3,227,707の都市Bostonは、図86の属性次元の範囲を超えています。この属性次元の範囲は、3,000,000までしか拡張できません。ソース・データ内の属性次元の範囲に含まれない値を許可するには、1000000のような範囲サイズを入力します。Essbaseでは、この範囲サイズを使用して、既存の最も値が大きいメンバーを超える属性次元、または最も値が小さいメンバーに満たない属性次元にメンバーを追加できます。

注意

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

関連付けの妥当性の確立

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

  • 属性次元のメンバーの追加または変更: 基本次元のメンバーに数値属性範囲を関連付けた後、属性次元への新規メンバーの挿入または属性次元の既存メンバーの名前変更を手動で実行する場合は、次のいずれかの作業を実行して、属性と基本メンバーを正しく関連付けます:

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

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

  • 属性次元のメンバーの削除: 新しいデータで次元を再構築するために、属性次元のメンバーをすべて削除できます。データ準備エディタの「フィールド・プロパティ」ダイアログ・ボックスにある「次元構築プロパティ」タブで、「範囲」ボタンをクリックし、「この属性次元の全メンバーを削除」を選択します。Essbaseでは、開始値と範囲サイズ値を使用して、属性次元が再構築されます。適切な属性関連付けを確認するには、「次元構築の設定」ダイアログ・ボックスの「次元構築の設定」タブで、基本次元に対して「関連付けの変更可能」オプションを選択する必要があります。

  • 基本次元へのメンバーの追加: 同じルール・ファイルを使用して、基本次元に新規メンバーを追加すると同時に、これらの新規メンバーを数値範囲属性に関連付けることができます。範囲サイズの値を指定します。データ準備エディタの「フィールド・プロパティ」ダイアログ・ボックスの「次元構築プロパティ」タブで、「範囲」ボタンをクリックし、属性次元の範囲サイズを指定します。

    Essbaseで、最上位の属性メンバーより大きく、かつその差が範囲サイズを超えるような基本次元値、または最下位の属性メンバーより小さく、かつその差が範囲サイズを超えるような新規の基本次元値が検出された場合、属性次元内で範囲外の値に対応するメンバーが作成されます。

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

    図 89. 動的な属性範囲メンバーの追加

    この図は、この図の前のテキストで説明されている、属性次元の新規メンバーを示しています。

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

属性および基本次元の構築に関するルールの確認

この項では、次元構築によって属性の定義と関連付けを行う方法に固有の領域について説明します。

準備

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

    属性次元におけるメンバー名の設定を参照してください。

  • ルール・ファイルで新規の属性次元を定義することは、ルール・ファイルで新規の標準次元を定義することとは異なります。

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

単一レベルの属性次元の構築に使用されるルール・ファイルは、マルチレベルの属性次元のメンバーの構築や関連付けを行うルール・ファイルより、少ないフィールド・タイプで十分です。

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

    属性の関連付けを参照してください。

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

    マルチレベルの属性次元の扱いを参照してください。

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

Essbaseで、属性次元のメンバーではない属性データ値が検出された場合、その値は自動的に新規メンバーとして追加されます。属性次元に新規メンバーが追加されないようにするには、「次元構築の設定」ダイアログ・ボックスの「次元構築の設定」タブで、属性次元に対して「メンバーを作成しない」オプションを選択します。

Oracle Essbase Administration Services Online Helpの「メンバー・プロパティの設定」を参照してください。

関連付けの制御

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

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

    データ準備エディタの「次元構築の設定」ダイアログ・ボックスの「次元構築の設定」タブで、属性次元に対して「関連付けの変更可能」オプションを選択します。

    Oracle Essbase Administration Services Online Helpの「メンバー・プロパティの設定」を参照してください。

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

    データ準備エディタの「フィールド・プロパティ」ダイアログ・ボックスの「次元構築プロパティ」タブで、「範囲」ボタンをクリックして、範囲のサイズを定義します。

    フィールド・タイプ情報の設定を参照してください。

  • 属性の同時関連付け

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

    構築方法の理解を参照してください。

注:

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

ルール・ファイルを使用した共有メンバーの作成

共有メンバーに関連付けられたデータは、共有メンバーと同じ名前を持つ実際のメンバーのデータです。共有メンバーには、実際のメンバーのデータへのポインタが保管されます。このため、データはメンバー間で共有され、1回のみ保管されます。

たとえば、100-20(Diet Cola)メンバーは100ファミリとDietファミリにロール・アップされます。

図 90. Sample.Basicデータベースの共有メンバー

この図は、この図の前のテキストで説明されている共有メンバーを示しています。

メンバーを共有する親の数に制限はありません。Diet Colaには親が2つありますが(100とDiet)、ロール・アップ先の親を追加で定義することもできます。

アウトライン内の複数世代でメンバーを共有できます。図90のDiet Colaは、アウトライン内の世代2の2つのメンバーに共有されていますが、図95のように世代3と世代4のメンバーで共有することもできます。

アウトライン内の異なる世代における共有メンバーは、アウトライン・エディタを使用すると簡単に作成できます。次元構築を使用して共有メンバーを作成する方法は、より複雑です。構築方法を選択し、データ・ソースを慎重にフォーマットする必要があります。

次の項では、データ・ソースとルール・ファイルを使用してアウトライン内に共有メンバーを構築する方法を説明します。

注:

共有メンバーが、関連付けられている実績メンバーの前に置かれるようなアウトラインは、作成しないでください。作成すると、アウトラインの検証でエラーが発生する可能性があります。ただし、次元構築中は「次元構築の設定」-「次元構築の設定」タブで、Essbaseにより、最上位の共有メンバーをプライマリ・メンバーとし、それまでのプライマリ・メンバーを共有メンバーに設定することでエラーを修正するオプションを選択できます。Oracle Essbase Administration Services Online Helpを参照してください。

同じ世代でのメンバーの共有

同じ世代で共有されているメンバーは、同じ分岐にロール・アップされます。100-20 (Diet Cola)は2つの親(100とDiet)によって共有されています。図91に示すように、これらの親は同じ世代2に属しており、同じ分岐(製品次元)にロール・アップされます:

図 91. サンプル・アウトライン: 同じ世代で共有されるメンバー

この図は、この図の前のテキストで説明されている、同じ世代で共有されるメンバーを示しています。

同じ世代でメンバーを共有するのは、メンバーを共有する最も簡単な方法で、世代参照、レベル参照または親子参照で実行できます。参照:

サンプルのデータ・ソース・ファイルおよびルール・ファイルが各構築方法について用意されています。各構築方法の結果は、図91に示されています。

世代参照による、同世代の共有メンバーの作成

世代参照構築方法を使用して同じ世代の共有メンバーの親を作成するには、共有メンバーの親のフィールド・タイプをDUPGENとして定義します。重複する世代とは、子のメンバーを共有する世代です。同じGEN番号をプライマリ・メンバーとして使用します。

たとえば、Dietという親を作成し、100-20、200-20、300-20および400-20の各メンバーを共有するには、サンプル・データ・ソース・ファイル(SHGENREF.TXT)を使用し、フィールドが図92のサンプル・ルール・ファイル(SHGENREF.RUL)と同じになるように、ルール・ファイルを設定します。100はColaファミリ、200はRoot Beerファミリ、300はCream Sodaファミリ、ファミリ名の後ろの-20(100-20)は、ダイエット・バージョンのソーダであることを示します。

図 92. サンプル・ルール・ファイル: 世代参照を使用して同じ世代で共有されるメンバー

この図は、この図の前のテキストで説明されている、世代参照構築方法を使用して同じ世代の共有メンバーの親を作成するためのルール・ファイルを示しています。

レベル参照による、同世代の共有メンバーの作成

レベル参照構築方法を使用して同じ世代の共有メンバーを作成するには、まずプライマリとセカンダリのロールアップが1つのレコードに指定されていることを確認します。セカンダリ・ロールアップは、1つのレコード内に必要な数だけ指定できます。

共有メンバーのフィールド・タイプをLEVELとして定義します。次に、レベル番号を入力します。同じ世代の共有メンバーを作成するには、セカンダリ・ロールアップのレベル番号にプライマリ・ロールアップと同じレベル番号が含まれるように設定します。データ・ソースの処理を実行すると、Essbaseにより、指定したレベルで親が作成され、その下に共有メンバーが挿入されます。

たとえば、共有メンバー100-20 (Diet Cola)、200-20 (Diet Root Beer)、300-20 (Diet Cream Soda)および400-20 (Diet Fruit Soda)を作成するには、サンプル・データ・ソース・ファイル(SHLEV.TXT)を使用し、フィールドが図93(SHLEV.RUL)と同じになるようにルール・ファイルを設定します。

図 93. サンプル・ルール・ファイル: レベル参照を使用して同じ世代で共有されるメンバー

この図は、この図の前のテキストで説明されている、レベル参照構築方法を使用して同じ世代で共有されるメンバーを作成するためのルール・ファイルを示しています。

親子参照による、同世代の共有メンバーの作成

親子参照構築方法を使用して同じ世代の共有メンバーを作成するには、フィールド・タイプPARENTとCHILDを定義します。Essbaseの「次元構築の設定」ダイアログ・ボックスの「次元構築の設定」タブで、「共有しない」オプションを選択解除して、共有を許可する設定にします。共有が許可されている場合、Essbaseでは、新しい親の下に、共有メンバーとして自動的に重複メンバーが作成されます。

図 94. サンプル・ルール・ファイル: 親子参照を使用して同じ世代で共有されるメンバー

この図は、この図の前のテキストで説明されている、親子参照構築方法を使用して同じ世代の共有メンバーを作成するために使用するルール・ファイルを示しています。

異なる世代でのメンバーの共有

場合によっては、アウトライン内の異なる世代の親に共有メンバーをロール・アップする必要があります。たとえば、図95では、共有メンバーは世代2(Diet)と世代3(TBCとGrandma's)の親にロール・アップされます。このアウトラインでは、TBC(The Beverage Company)が一部の飲料製品を外部ベンダーから購入することを想定しています。200-20(Diet Root Beer)はGrandma'sという名前のベンダーから購入します。

図 95. サンプル・アウトライン: 異なる世代で共有されるメンバー

この図は、この図の前のテキストで説明されている、異なる世代で共有されるメンバーを示しています。

異なる世代でメンバーを共有するのは、レベル参照または親子参照で実行できます。参照:

サンプルのデータ・ソース・ファイルおよびルール・ファイルが各構築方法について用意されています。各構築方法の結果は、図95に示されています。

レベル参照による、異なる世代での共有メンバーの作成

レベル参照構築方法を使用して異なる世代の共有メンバーを作成するには、プライマリとセカンダリのロールアップが1つのレコードに指定されていることを確認します。セカンダリ・ロールアップは、1つのレコード内に必要な数だけ指定できます。

共有メンバーのフィールド・タイプをLEVELとして定義します。次に、レベル番号を入力します。データ・ソースの処理を実行すると、Essbaseにより、指定したレベルで親が作成され、その下に共有メンバーが挿入されます。

たとえば、Dietという親を持つ製品100-20、200-20および300-20を、TBCとGrandma'sの2つの親が共有するためには、図96のようなサンプル・データ・ファイルとルール・ファイルを使用します:

図 96. サンプル・ルール・ファイル: レベル参照を使用して異なる世代で共有されるメンバー

この図は、この図の前のテキストで説明されている、レベル参照構築方法を使用して異なる世代で共有されるメンバーを登録するために使用するルール・ファイルを示しています。

親子参照による、異なる世代での共有メンバーの作成

親子参照構築方法を使用して異なる世代の共有メンバーを作成するには、フィールド・タイプPARENTとCHILDを定義します。Essbaseの「次元構築の設定」ダイアログ・ボックスの「次元構築の設定」タブで、「共有しない」オプションを選択解除して、共有を許可する設定にします。共有が許可されている場合、Essbaseでは、新しい親の下に、共有メンバーとして自動的に重複メンバーが作成されます。

図 97. サンプル・ルール・ファイル: 親子参照を使用して異なる世代で共有されるメンバー

この図は、親子参照構築方法を使用して異なる世代の共有メンバーを作成するために使用されるルール・ファイルを示しています。

非レベル0のメンバーの共有

場合によっては、非レベル0のメンバー(最下位でない世代のメンバー)を共有する必要があります。たとえば、図98の100、200および300は、TBCとGrandma'sによって共有されています。このアウトラインは、TBCが一部の製品ラインを外部ベンダーから購入することを想定しています。たとえば、200 (すべてのルート・ビール)をGrandma'sという名前のベンダーから購入します。

図 98. サンプル・アウトライン: 異なる世代で共有される非レベル0のメンバー

この図は、この図の前のテキストで説明されている、異なる世代で共有される非レベル0のメンバーを示しています。

非レベル0のメンバーの共有は、レベル参照または親子参照で実行できます。参照:

サンプルのデータ・ソース・ファイルおよびルール・ファイルが各構築方法について用意されています。各構築方法の結果は、図98に示されています。

レベル参照による非レベル0の共有メンバーの作成

レベル参照構築方法を使用して非レベル0の共有メンバーを作成するには、プライマリとセカンダリのロールアップが1つのレコードに指定されていることを確認します。セカンダリ・ロールアップは、1つのレコード内に必要な数だけ指定できます。

共有メンバーの親のフィールド・タイプを重複レベル(DUPLEVEL)として定義します。次に、レベル番号を入力します。同じ世代の共有メンバーを作成するには、セカンダリ・ロールアップのレベル番号にプライマリ・ロールアップと同じレベル番号が含まれるように設定します。データ・ソースの処理を実行すると、Essbaseにより、指定したレベルで親が作成され、その下に共有メンバーが挿入されます。

たとえば、製品ライン100、200および300をSodaという親と、TBCおよびGrandma'sという親の間で共有するには、図99のサンプル・データ・ファイルおよびルール・ファイルを使用します。このデータ・ソースおよびルール・ファイルは、アウトライン内にDiet、TBCおよびGrandma'sメンバーが存在する場合にのみ機能します。DUPLEVELフィールドは、指定したレベル・フィールドがアウトライン内にすでに存在する場合を除き、常に世代2の次元の子として作成されます。

図 99. サンプル・ルール・ファイル: レベル参照を使用して異なる世代で共有される非レベル0のメンバー

この図は、この図の前のテキストで説明されている、レベル参照構築方法を使用して異なる世代で共有する非レベル0のメンバーを作成するために使用するルール・ファイルを示しています。

親子参照による非レベル0の共有メンバーの作成

親子参照構築方法は、最も用途の広い共有メンバー作成方法です。この構築方法には、世代参照やレベル参照の構築方法のように、アウトライン内の共有メンバーの位置に制限がありません。

親子参照構築方法を使用して同じ世代の非レベル0の共有メンバーを作成するには、フィールド・タイプPARENTとCHILDを定義します。Essbaseの「次元構築の設定」ダイアログ・ボックスの「次元構築の設定」タブで、「共有しない」オプションを選択解除して、共有を許可する設定にします。共有が許可されている場合、Essbaseでは、新しい親の下に、共有メンバーとして自動的に重複メンバーが作成されます。

図 100. サンプル・ルール・ファイル: 親子参照を使用して同じ世代で共有される非レベル0のメンバー

この図は、親子参照構築方法を使用して同じ世代で共有される非レベル0のメンバーを作成するために使用するルール・ファイルを示しています。

レベル参照を使用した複数のロールアップの作成

複数のパースペクティブから合計を取得できるようにする方法として、レベル参照構築方法を使用することで、アウトライン内の異なるレベルに共有メンバーを配置する方法があります。たとえば、図101および図102のルール・ファイル(LEVELMUL.RUL)は、製品次元内の各レベルについて構築方法を指定しています:

図 101. サンプル・ルール・ファイル: レベル参照を使用した異なるレベルの複数のロールアップ

この図は、レベル参照構築方法を使用して異なるレベルで共有するメンバーを作成するために使用するルール・ファイルを示しています。

次の図では、ルール・ファイルを右にスクロールして、レコードが長いため表示されていないメンバーを表示しています:

図 102. (続き)サンプル・ルール・ファイル: レベル参照を使用した異なるレベルの複数のロールアップ

この図は、レベル参照構築方法を使用して異なるレベルで共有するメンバーを作成するために使用するルール・ファイルの続きです。

図102のデータを使用して次元構築を実行した場合、Essbaseにより、図103に示すアウトラインが構築されます:

図 103. サンプル・アウトライン: 異なるレベルの複数のロールアップ

この図は、製品次元の異なるレベルの新規共有メンバーを示しています。

この例では、パッケージ・タイプ(缶)のみでなく、パッケージ材料による分析も可能です。たとえば、アルミニウム缶とスチール缶の売上を比較する分析が可能です。

製品次元は疎次元なので、代替アウトライン設計を使用して同じ情報を取得できます。たとえば、Canの下位にSteelとAluminumをレベル0メンバーとして持つパッケージ・タイプに対してマルチレベルの属性次元を作成するとします。アウトラインの設計のガイドラインについては、データベース設計の分析を参照してください。

複数のデータ・ソースからの共有ロールアップの作成

1つの次元のデータが複数のデータ・ソースに含まれていることがよくあります。複数のデータ・ソースから次元を構築し、複数のロールアップを作成する場合は、最も適切な構築方法を使用して最初のデータ・ソースをロードした後、親子参照構築方法を使用してその他のすべてのデータ・ソースをロードします。Essbaseの「次元構築の設定」ダイアログ・ボックスの「次元構築の設定」タブで「共有しない」オプションを選択解除して、共有を許可するように設定します。

たとえば、次の製品データ・ソースを使用します:

      "Soft Drinks"   Cola
"Soft Drinks"   "Root Beer"
Cola            TBC
"Root Beer"     Grandma’s
   

Essbaseは、図104に示されているアウトラインを構築します:

図 104. サンプル・アウトライン: Soft Drinks

この図は、この図の前のテキストで説明されている、Soft Drinksのロード後のアウトラインを示しています。

続いて、次の2番目のデータ・ソースをロードし、親子参照構築方法を使用して製品とベンダーを関連付けます。Essbaseが共有を許可するように設定されていることを確認します。

      Vendor   TBC
Vendor   Grandma’s
   

Essbaseは、図105に示されているアウトラインを構築します:

図 105. サンプル・アウトライン: Vendor (共有ロールアップ)

この図は、この図の前のテキストで説明されている、Vendorのロード後のアウトラインを示しています。

重複するメンバー・アウトラインの構築

重複するメンバー・アウトラインには、同じ名前を持つメンバーが複数含まれていますが、その値は共有されていません。一意のメンバー・アウトラインの場合、共有メンバーのみが同じ名前を持つことができます。重複メンバーのアウトラインの作成および使用。を参照してください。

ルール・ファイルを使用して、重複するメンバー・アウトライン内の次元、レベルおよび世代が一意であるか、重複するメンバーを含めることができるかを設定します。

  次元構築中に次元の一意性を設定する方法については、『Oracle Essbase Administration Servicesオンライン・ヘルプ』の「次元プロパティの設定」を参照してください。

ルール・ファイルでは、世代またはレベルの一意性が「次元プロパティ」ダイアログ・ボックスの「世代名」または「レベル名」タブで設定されます。

  次元構築中に世代またはレベルの一意性を設定する方法については、『Oracle Essbase Administration Servicesオンライン・ヘルプ』の「次元プロパティの設定」を参照してください。

ルール・ファイルを使用したメンバーの一意性の識別

重複するメンバー・アウトライン階層が正しく構築されたことを確認するには、データ・ソース内の修飾メンバー名を使用するか、ルール・ファイルを使用してデータ・ソース内のフィールドから修飾メンバー名を構築します。

多くの場合、Essbaseでは、参照方法とフィールドの配置の情報を使用して、データ・ソース列を重複するメンバー・アウトライン内のメンバーにマッピングできます。重複するメンバーの次元構築ルール・ファイルは、一意のメンバー・アウトラインのルール・ファイルと類似しています。

次の操作を行うには、より複雑な修飾メンバー名のルール・ファイルが必要です:

  • 親子次元構築: 親子構築方法では、親と子の2つのフィールドが必要になります。メンバーが重複している場合、親フィールドに修飾メンバー名を含める必要があります。重複するメンバー・アウトラインでの親子次元構築では、属性関連付けはサポートされません。属性を正しいメンバーに関連付けるには、世代参照またはレベル参照ルール・ファイルを使用して関連付けを別途実行します。

  • アウトライン内の既存のメンバーへの属性の関連付け: メンバーが重複している場合、属性を関連付けるフィールドに修飾メンバー名を含める必要があります。

ルール・ファイルを使用した修飾メンバー名の構築

データ・ソースにフィールドとして修飾メンバー名が含まれていない場合は、ルール・ファイルを使用して、複数のフィールドを編集、結合し修飾メンバー名にできます。

修飾メンバー名を作成するには、「データ・ソースのプロパティ」ダイアログ・ボックスの「フィールドの編集」タブを使用して、フィールドをコピー、移動および結合し、ブラケットやピリオドを作成します。たとえば、重複するメンバー次元内の既存の都市メンバーに人口属性を割り当てることができます。移動、結合および作成操作を使用して、修飾名を構築できます。

たとえば、次のデータ・ソース内の都市は、すでにアウトライン内に存在しています。これらの都市とこの4列のデータ・ソースの最後の列に入っている人口属性を関連付けるとします:

      
Central  "Kansas City"  Kansas      706010
Central  "Kansas City"  Missouri    1070052
East     "New York"     "New York"  8104079
   

修飾名の作成、フィールド列の配置を正確に行うために、ルール・ファイルを使用して次のようにこのソースを編集します:

  • 「テキストを使用した作成」操作を使用して、次のテキスト要素にフィールドを1つずつ作成します:

    • [

    • ].[

    • ].[

    • ]

  • 「移動」操作を使用して、フィールドを次の順序で移動します:

                1   2         3     4        5    6            7   8
    [   Central   ].[   Kansas   ].[  Kansas City  ]   706010
             
  • 「結合」操作を使用して、フィールド1、2、3、4、5、6、7を結合して単一のフィールドを作成し、このフィールドに[Central].[Kansas].[Kansas City]のように属性を関連付けます。ルール・ファイルに2つのフィールドが表示されます:

                1                                 2
     [Central].[Kansas].[Kansas City]  706010