この項の内容:
この章のすべての例は、Sample.Basicデータベースに基づいています。
データ・ソース内のデータのタイプに基づいて構築方法を選択します。選択した構築方法によって、Essbaseでアウトライン内の次元、メンバーおよび別名を追加、変更または削除するときに使用するアルゴリズムが決まります。
表43のガイドラインを使用して、データ・ソースの適切な構築方法を選択します:
表 43. 構築方法のガイドライン
構築方法[1] | ||||
---|---|---|---|---|
各レコードでは、親の名前、子の名前、その子の子などを指定します。 | ||||
各レコードでは、メンバーの名前、その親の名前、その親の親の名前などを指定します。 | ||||
各レコードでは、親の名前と新しい子メンバーの名前を、この順序で指定します。ただし、他の情報も指定できます。 | ||||
各データ・ソースには、新規メンバーがリストされています。このデータ・ソースでは、これらのメンバーがアウトラインのどこに属しているかは指定されません。Essbaseでは、これらのメンバーの追加場所を決定するためのアルゴリズムを提供します。 | ||||
トップダウンのデータ・ソースは、左から右の順で、最上位レベルから最下位レベルへと編成されます。各レコードは最も全般的な情報から始まり、より詳細な情報へと進んでいきます。新規メンバーの名前は、レコードの末尾にあります。トップダウンのデータ・ソースを使用する場合、世代参照の構築方法を使用します。ルール・ファイルに、世代番号とデータ・ソースの各フィールドのフィールド・タイプを指定します。
Essbaseでは、次元内のメンバーに対し、その次元内でのメンバーの階層的な位置に従って番号が付けられます。この番号を世代参照と呼びます。次元は常に世代1です。特定の次元の同じ分岐にあるすべてのメンバーを世代と呼びます。世代には、次元(次元1)を基準とした位置に従って、トップダウンで番号が付けられます。
たとえば、図66で示されているように、製品次元は世代1です。製品次元のメンバー100は世代2になります。100のメンバーである100-10などは世代3になります。世代参照の構築方法を使用するには、ルール・ファイルに世代参照番号を指定します。
図67の上半分は、トップダウンのデータ・ソースです(GENREF.TXT)。このデータ・ソースは、製品次元の構築に使用されます。同じ図の下半分は、データ・ソースのルール・ファイルです(GENREF.RUL)。このルール・ファイルでは、データ・ソース内の各フィールドに世代番号を指定できます。フィールド・タイプ情報の設定を参照してください。
図68は、Essbaseによって、GENREF.TXTデータ・ソースとGENREF.RULルール・ファイルから構築されたツリーです:
世代参照の構築方法を使用する場合は、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のアウトラインを構築するには、次のボトムアップのデータ・ソースを使用できます:
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)を含みます。
たとえば、図71のようなツリーを構築するには、図70を使用してデータ・ソース(LEVEL.TXT)とルール・ファイル(LEVEL.RUL)を設定します。
レベル参照の構築方法を使用する場合は、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の子です。
親子データ・ソースには2つ以上の列、つまり親の列と子の列がこの順番で含まれている必要があります。データ・ソースには、他の情報(たとえば新規メンバーの別名、属性、プロパティなど)の列も含めることができます。親子データ・ソース内のレコードでは、複数の親または複数の子を指定できません。また、親の列と子の列の順序を逆にすることもできません。
親子構築では、ルール・ファイルで親の列と子の列を指定します。たとえば図73の上半分はデータ・ソース(PARCHIL.TXT)で、このデータ・ソース内の各レコードは、親の名前とその子の名前をこの順序で指定しています。図の下半分は、親の列と子の列を指定するルール・ファイルです(PARCHIL.RUL)。さらに、この例では、別名に子フィールドが関連付けられています。
図74は、Essbaseにより、このデータ・ソースとルール・ファイルから構築されたツリーです。
メンバーが重複している場合、親フィールドに修飾メンバー名を含める必要があります。ルール・ファイルを使用した修飾メンバー名の構築を参照してください。 |
データ・ソースが新規メンバーのリストで構成されていて、その祖先が指定されていない場合、アウトライン内のどこにメンバーを追加するかをEssbaseで決定する必要があります。このタイプのデータ・ソースでは、次の構築方法を使用できます:
各新規メンバーを、そのテキストが自分のテキストと最もよく一致する既存メンバーの兄弟として追加します。
文字列の一致に基づくメンバーの追加を参照してください。
各新規メンバーを、最下位レベルの既存メンバーの兄弟として追加します。
最下位レベルの兄弟としてのメンバーの追加を参照してください。
指定した親(通常はダミーの親)の子として、すべての新規メンバーを追加します。
メンバーの指定した親への追加を参照してください。
Essbaseですべての新規メンバーをアウトラインに追加した後、アウトライン・エディタを使用して、新規メンバーを正しい位置に移動する必要が生じることがあります。次元およびメンバーの位置付けを参照してください。
文字列と既存のメンバーを一致させることにより、データ・ソースから既存の次元へ新規メンバーを追加できます。Essbaseでデータ・ソース内に新規メンバーが見つかった場合、アウトラインで同様のテキストのメンバー名がスキャンされ、新規メンバーは、最も一致率の高い文字列を持つメンバーの兄弟として追加されます。
たとえば、図75(SIBSTR.TXT)は、製品次元に追加される2つの新規メンバー(100-11および200-22)を含みます。新規メンバーは、製品次元の文字列と同様に、3桁の数字、ダッシュおよび2桁の数字で構成されます。
例のメンバーをデータベースに追加するには、ルール・ファイル内に表44の値を設定します:
図76は、Essbaseにより、このデータ・ソースとルール・ファイルから構築されたツリーです。100-11は100の兄弟として追加され、200-22は200の兄弟として追加されます。
最下位レベルの次元(レベル0の分岐)のメンバーの兄弟として、データ・ソースから新規メンバーを追加できます。Essbaseでデータ・ソース内に新規メンバーが見つかった場合、アウトラインでレベル0の分岐のメンバーがスキャンされます。新規メンバーは、このメンバーの兄弟として追加されます。
たとえば、図77の、データ・ソース(SIBLOW.TXT)およびルール・ファイル(SIBLOW.RUL)は、メジャー次元に追加する新規メンバー(A100-10およびA100-99)を含みます。
例のメンバーをデータベースに動的に追加するには、ルール・ファイル内に表45の値を設定します:
図78は、Essbaseにより、このデータ・ソースとルール・ファイルから構築されたツリーです。A100-20およびA100-99はMarginの兄弟として追加されます。
すべての新規メンバーを、指定された親(通常はダミーの親)の子として追加できます。Essbaseですべての新規メンバーをアウトラインに追加した後、追加されたメンバーを確認して、アウトライン・エディタで移動または削除します。
Essbaseでデータ・ソース内に新規メンバーが検出されると、これらのメンバーはユーザーが定義した親の子として追加されます。親は、次元構築を開始する前にアウトラインに追加しておく必要があります。
たとえば、図79のデータ・ソース(SIBPAR.TXT)には、製品次元(フィールド1)の2つの新規メンバー(600-54と780-22)が含まれています。以前に、製品次元の下にNewProductsというメンバーを追加したとします。
データベースのNewProductsメンバーの下に例のメンバーを追加するには、ルール・ファイル内に表46の値を設定します:
表 46. 指定された親の子としてのメンバーを追加する例
| ||
「子として追加」テキスト・ボックスにNewProductsと入力します。 |
図80は、Essbaseにより、このデータ・ソースとルール・ファイルから構築されたツリーです。600-54および780-22はNewProductsの兄弟として追加されます。
データ・ソースに属性情報が含まれている場合は、1つ以上のルール・ファイルを使用して、属性次元の構築と基本次元のメンバーへの属性の関連付けを行う必要があります。
ルール・ファイルを使用して、属性次元の動的構築、メンバーの追加や削除、および属性の関連付けの設定や変更を行うことができます。
これらの操作を実行するために、次のいずれかの方法を使用できます:
基本次元と属性次元の構築および関連付けを同時に行います。この場合、単一のルール・ファイルを使用して基本次元と1つ以上の属性次元を構築し、各属性を基本次元の適切なメンバーに関連付けます。この方法は、単一のルール・ファイルを使用する最も簡単な方法です。基本次元が存在せず、ソース・データの各レコードに基本次元の各メンバーの属性情報がすべて含まれている場合は、この方法を使用します。
属性次元を構築した後、1つのルール・ファイルで関連付けを行います。基本次元は別の手順で構築したか、またはすでに存在しているものとします。この場合、属性次元の構築と、その属性を基本次元のメンバーと関連付ける処理をワン・ステップで実行できます。このためには、ルール・ファイルに属性関連付けを定義するだけです。属性の関連付けを参照してください。
属性次元を構築した後、別のルール・ファイルを使用して関連付けを行います。基本次元は別の手順で構築したか、またはすでに存在しているものとします。この場合、属性次元の構築と、その属性を基本次元のメンバーと関連付ける処理を別々のステップで実行できます。属性次元を構築した後、属性メンバーを基本次元のメンバーと関連付けます。この方法は、異なるサイズの範囲を表すメンバーを持つ、マルチレベルの数値属性次元を構築するときに使用します。
データベース内に属性次元を構築する前に、アウトラインで使用する属性メンバー名のフォーマットを定義する必要があります。属性次元におけるメンバー名の設定を参照してください。
データ・ロードおよび次元構築のプロセスを参照してください。
基本次元のメンバーに属性を関連付けるのと同時に構築する方法。
属性の関連付けを参照してください。
属性次元を構築すると同時にその属性メンバーを基本次元のメンバーに関連付けるか、あるいは個別の手順でこれらの作業を実行するかにかかわらず、この項での説明に従ってフィールドを定義します。
マルチレベルの属性次元を扱う場合、または数値、ブールあるいは日付のタイプの属性次元を扱う場合、ルール・ファイルに追加フィールドが必要になります。マルチレベルの属性次元の扱いを参照してください。 |
ソース・データの各レコードに、2つ以上の列が含まれている必要があります。1つは基本次元のメンバー用の列、もう1つは基本次元メンバーの属性値用の列です。同じソース・データ・レコードに、基本次元のメンバーと関連付けるその他の属性の列を追加で含めることができます。属性次元のメンバーのフィールドの前に、基本次元のメンバーのフィールドを配置する必要があります。
属性次元メンバーのフィールド・タイプを属性次元の名前として定義し、関連付けられた基本次元のメンバーの世代番号またはレベル番号を使用して、基本次元名を指定します。たとえば、図81のATTRPROD.RULファイルでは、フィールド定義Ounces3,Productによって、このフィールドにOunces属性次元のメンバーが含まれることを指定しています。このフィールドの各メンバーは、基本次元である製品次元の世代3メンバーとして定義されたデータ・フィールドに関連付けられています。このフィールド定義に基づいて、Essbaseでは、属性64がメンバー500-10に関連付けられます。
Essbaseでは、属性列を使用して、属性次元のメンバーを構築できます。データ準備エディタの「次元構築の設定」ダイアログ・ボックスの「次元構築の設定」タブで、基本次元に対して「メンバーを作成しない」オプションを選択解除します。Oracle Essbase Administration Services Online Helpの「メンバー・プロパティの設定」を参照してください。
数値の範囲を扱う場合は、属性次元の構築と関連付けを別々の手順で行う必要が生じることがあります。数値範囲の扱いを参照してください。
図81のCaffeinated3,Productフィールドは、追加の単一レベルの属性次元からの属性関連付けの方法を示しています。基本次元はすでに指定されているので、基本次元のメンバーと関連付ける各属性に対して追加フィールドを定義するだけです。
図81のファイルは、図82のアウトラインに示すように属性を関連付けます。メンバー64はOunces属性次元の新規メンバーです。メンバー500、500-10および500-20は、基本次元である製品の新規メンバーで、メンバー64に関連付けられています。
図81のルール・ファイルを使用して、属性関連付けを変更することもできます。関連付けの変更を許可していることを確認してください。データ準備エディタの「次元構築の設定」ダイアログ・ボックスの「次元構築の設定」タブで、基本次元に対して「関連付けの変更可能」を選択します。Oracle Essbase Administration Services Online Helpの「メンバー・プロパティの設定」を参照してください。
メンバーが重複している場合、属性を関連付けるフィールドに修飾メンバー名を含める必要があります。ルール・ファイルを使用した修飾メンバー名の構築を参照してください。 |
属性関連付けを削除するときは、属性関連付けを更新するときと同じプロセスを実行した後、さらに次の手順を実行します:
「フィールド・プロパティ」ダイアログ・ボックスの「次元構築プロパティ」タブで、属性フィールドに対して「フィールドが空の場合に削除」を選択します(このオプションは、「関連付けの変更可能」が選択されていない場合は無視されます)。
データ・ソースのフィールドは空またはNULLのままにしておきます。
マルチレベル、数値、ブールおよび日付の属性次元には、重複したレベル0メンバーを含めることができます。たとえば、製品次元と関連付けて、2つのレベルのSize属性次元を作成できます。レベル1では男性と女性でサイズを分類します。レベル0メンバー(属性)は実際のサイズです。WomenとMenそれぞれの下に、8という名前のメンバーを作成できます。
属性がマルチレベル、数値、ブールまたは日付のいずれかの属性次元に含まれる場合、ソース・データには、その属性次元のすべての世代またはレベルの列が含まれている必要があります。ルール・ファイル内で、属性次元のレベルを構成するすべてのフィールドをコピーする必要があります。最初の属性フィールド・セットを定義して、属性次元を構築します。2番目の属性フィールド・セットを定義して、その属性を適切な基本次元メンバーと関連付けます。正しい属性と確実に関連付けるには、親フィールドをコピーし、このコピーをフィールド・タイプAttribute Parentとして設定することにより、属性フィールドの親フィールドを指示します。
次の手順では、マルチレベルの属性次元を構築したり、そのメンバーを基本次元のメンバーに関連付けたりするために、ルール・ファイル内でどのようにフィールドを定義するかを説明します。この例では、レベル参照の構築方法を使用します。
ルール・ファイル内のフィールド1とフィールド2に対し、標準次元を定義する場合と同じ方法で属性次元フィールドを定義し、タイプ(レベルまたは世代)、番号および次元名を指定します。
次の例では、製品次元のレベル0とレベル1のフィールドを定義します。図83は、この段階でのルール・ファイルのフィールドを示します。
図84のように、ルール・ファイルにフィールド定義が追加されました。このフィールド定義によって、属性次元Sizeを構築し、Sizeのメンバーに基本次元であるProduct次元の適切なメンバーを関連付けることができます。
図84のデータを使用して次元構築を実行すると、Essbaseにより、Size属性次元が構築され、そのメンバーが基本次元の適切なメンバーに関連付けられます。図85は、更新されたアウトラインです。
多くの場合は、単一のルール・ファイルを使用して、1回の次元構築操作で、数値範囲の属性次元を動的に構築し、基本次元のメンバーを範囲と関連付けることができます。しかし、次のような場合は、属性次元の構築用のルール・ファイルと、属性を基本次元の適切なメンバーに関連付けるためのルール・ファイルの合計2つのルール・ファイルを使用する必要があります:
図86のPopulation属性次元は、両方の場合を示しています。Populationは、マルチレベルの数値属性次元で、レベル0メンバーを持ち、異なるサイズの範囲を表します。
1つのルール・ファイルでPopulation次元を構築し、別のルール・ファイルでPopulation次元のメンバーを、その基本次元のメンバーの属性として関連付ける必要があります。
最初に、属性次元を構築するため、世代、レベルまたは親子構築方法を使用するルール・ファイルを作成します。このルール・ファイル内に、次の情報を指定します:
フィールド・タイプ情報の設定を参照してください。
ソース・データは、昇順の属性順になっている必要があります。範囲のサイズが異なる場合は、ソース・データに各属性範囲のレコードを含める必要があります。
世代を使用する方法で図86のアウトラインを構築するには、数値属性値に基づいてソース・データを昇順に配列する必要があります。図87のルール・ファイル内にフィールドを定義します。図87は、別名と属性を関連付ける方法も示しています。
数値属性次元範囲を構築した後、ルール・ファイルを使用して、基本次元のメンバーとその属性を関連付ける必要があります。ソース・データには、基本次元のメンバー用のフィールドとデータ値用のフィールドがあります。Essbaseでは、これらのフィールドを使用して適切なPopulation属性を関連付けます。
図88のように、ルール・ファイルを定義します。
関連付けフィールドを定義する際(たとえば、Population3,Market)、範囲内に属性メンバーを配置します。データ準備エディタの「フィールド・プロパティ」ダイアログ・ボックスの「次元構築プロパティ」タブで、「属性メンバーを範囲内に配置」を選択します。
図88にある人口3,227,707の都市Bostonは、図86の属性次元の範囲を超えています。この属性次元の範囲は、3,000,000までしか拡張できません。ソース・データ内の属性次元の範囲に含まれない値を許可するには、1000000のような範囲サイズを入力します。Essbaseでは、この範囲サイズを使用して、既存の最も値が大きいメンバーを超える属性次元、または最も値が小さいメンバーに満たない属性次元にメンバーを追加できます。 |
属性関連付けの妥当性を確立するには、正しい次元構築オプションを選択し、適切な順序で構築を実行する必要があります。
属性次元のメンバーの追加または変更: 基本次元のメンバーに数値属性範囲を関連付けた後、属性次元への新規メンバーの挿入または属性次元の既存メンバーの名前変更を手動で実行する場合は、次のいずれかの作業を実行して、属性と基本メンバーを正しく関連付けます:
属性次元のメンバーの削除: 新しいデータで次元を再構築するために、属性次元のメンバーをすべて削除できます。データ準備エディタの「フィールド・プロパティ」ダイアログ・ボックスにある「次元構築プロパティ」タブで、「範囲」ボタンをクリックし、「この属性次元の全メンバーを削除」を選択します。Essbaseでは、開始値と範囲サイズ値を使用して、属性次元が再構築されます。適切な属性関連付けを確認するには、「次元構築の設定」ダイアログ・ボックスの「次元構築の設定」タブで、基本次元に対して「関連付けの変更可能」オプションを選択する必要があります。
基本次元へのメンバーの追加: 同じルール・ファイルを使用して、基本次元に新規メンバーを追加すると同時に、これらの新規メンバーを数値範囲属性に関連付けることができます。範囲サイズの値を指定します。データ準備エディタの「フィールド・プロパティ」ダイアログ・ボックスの「次元構築プロパティ」タブで、「範囲」ボタンをクリックし、属性次元の範囲サイズを指定します。
Essbaseで、最上位の属性メンバーより大きく、かつその差が範囲サイズを超えるような基本次元値、または最下位の属性メンバーより小さく、かつその差が範囲サイズを超えるような新規の基本次元値が検出された場合、属性次元内で範囲外の値に対応するメンバーが作成されます。
たとえば、図89では、数値範囲属性が「範囲の一番上」と定義されています。Population属性次元で一番値が大きいメンバーは、3000000です。ソース・データに人口4,420,000のレコードが含まれていて、範囲サイズが1000000の場合、Essbaseでは属性次元に4000000と5000000の2つのメンバーが追加され、値4,420,000の基本メンバーと属性5000000が関連付けられます。
範囲メンバーと基本次元メンバーを同時に追加した場合、Essbaseでは属性次元の新規メンバーの別名は作成されません。属性次元の新規メンバーの範囲値を説明する別名が必要な場合は、別名を別途追加する必要があります。
この項では、次元構築によって属性の定義と関連付けを行う方法に固有の領域について説明します。
次元構築を実行する前に、アウトラインに属性メンバー名のフォーマットを定義する必要があります。
属性次元におけるメンバー名の設定を参照してください。
単一レベルの属性次元の構築に使用されるルール・ファイルは、マルチレベルの属性次元のメンバーの構築や関連付けを行うルール・ファイルより、少ないフィールド・タイプで十分です。
単一レベルの属性次元の場合、属性値が含まれるフィールドを基本次元のメンバーと関連付けるフィールドとして定義します。次元構築では、この定義済フィールドを使用して、属性次元に新規メンバーを追加します。
属性の関連付けを参照してください。
マルチレベルの属性次元の場合、Essbaseには、属性次元内の各世代またはレベルを定義するフィールドと、関連付けを定義するフィールドが必要です。新しいフィールド・タイプAttribute Parentを使用して、関連付けの対象となる、属性メンバーの親メンバーになるフィールドを識別します。
マルチレベルの属性次元の扱いを参照してください。
Essbaseで、属性次元のメンバーではない属性データ値が検出された場合、その値は自動的に新規メンバーとして追加されます。属性次元に新規メンバーが追加されないようにするには、「次元構築の設定」ダイアログ・ボックスの「次元構築の設定」タブで、属性次元に対して「メンバーを作成しない」オプションを選択します。
Oracle Essbase Administration Services Online Helpの「メンバー・プロパティの設定」を参照してください。
次の関連付けを制御できます:
属性の関連付けに対する変更
データ準備エディタの「次元構築の設定」ダイアログ・ボックスの「次元構築の設定」タブで、属性次元に対して「関連付けの変更可能」オプションを選択します。
Oracle Essbase Administration Services Online Helpの「メンバー・プロパティの設定」を参照してください。
値の範囲を表す属性による、基本メンバーの自動関連付けの有効化
データ準備エディタの「フィールド・プロパティ」ダイアログ・ボックスの「次元構築プロパティ」タブで、「範囲」ボタンをクリックして、範囲のサイズを定義します。
フィールド・タイプ情報の設定を参照してください。
属性の同時関連付け
構築方法の理解を参照してください。
共有メンバーに関連付けられたデータは、共有メンバーと同じ名前を持つ実際のメンバーのデータです。共有メンバーには、実際のメンバーのデータへのポインタが保管されます。このため、データはメンバー間で共有され、1回のみ保管されます。
たとえば、100-20(Diet Cola)メンバーは100ファミリとDietファミリにロール・アップされます。
メンバーを共有する親の数に制限はありません。Diet Colaには親が2つありますが(100とDiet)、ロール・アップ先の親を追加で定義することもできます。
アウトライン内の複数世代でメンバーを共有できます。図90のDiet Colaは、アウトライン内の世代2の2つのメンバーに共有されていますが、図95のように世代3と世代4のメンバーで共有することもできます。
アウトライン内の異なる世代における共有メンバーは、アウトライン・エディタを使用すると簡単に作成できます。次元構築を使用して共有メンバーを作成する方法は、より複雑です。構築方法を選択し、データ・ソースを慎重にフォーマットする必要があります。
次の項では、データ・ソースとルール・ファイルを使用してアウトライン内に共有メンバーを構築する方法を説明します。
同じ世代で共有されているメンバーは、同じ分岐にロール・アップされます。100-20 (Diet Cola)は2つの親(100とDiet)によって共有されています。図91に示すように、これらの親は同じ世代2に属しており、同じ分岐(製品次元)にロール・アップされます:
同じ世代でメンバーを共有するのは、メンバーを共有する最も簡単な方法で、世代参照、レベル参照または親子参照で実行できます。参照:
サンプルのデータ・ソース・ファイルおよびルール・ファイルが各構築方法について用意されています。各構築方法の結果は、図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)は、ダイエット・バージョンのソーダであることを示します。
レベル参照構築方法を使用して同じ世代の共有メンバーを作成するには、まずプライマリとセカンダリのロールアップが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)と同じになるようにルール・ファイルを設定します。
場合によっては、アウトライン内の異なる世代の親に共有メンバーをロール・アップする必要があります。たとえば、図95では、共有メンバーは世代2(Diet)と世代3(TBCとGrandma's)の親にロール・アップされます。このアウトラインでは、TBC(The Beverage Company)が一部の飲料製品を外部ベンダーから購入することを想定しています。200-20(Diet Root Beer)はGrandma'sという名前のベンダーから購入します。
異なる世代でメンバーを共有するのは、レベル参照または親子参照で実行できます。参照:
サンプルのデータ・ソース・ファイルおよびルール・ファイルが各構築方法について用意されています。各構築方法の結果は、図95に示されています。
レベル参照構築方法を使用して異なる世代の共有メンバーを作成するには、プライマリとセカンダリのロールアップが1つのレコードに指定されていることを確認します。セカンダリ・ロールアップは、1つのレコード内に必要な数だけ指定できます。
共有メンバーのフィールド・タイプをLEVELとして定義します。次に、レベル番号を入力します。データ・ソースの処理を実行すると、Essbaseにより、指定したレベルで親が作成され、その下に共有メンバーが挿入されます。
たとえば、Dietという親を持つ製品100-20、200-20および300-20を、TBCとGrandma'sの2つの親が共有するためには、図96のようなサンプル・データ・ファイルとルール・ファイルを使用します:
場合によっては、非レベル0のメンバー(最下位でない世代のメンバー)を共有する必要があります。たとえば、図98の100、200および300は、TBCとGrandma'sによって共有されています。このアウトラインは、TBCが一部の製品ラインを外部ベンダーから購入することを想定しています。たとえば、200 (すべてのルート・ビール)をGrandma'sという名前のベンダーから購入します。
非レベル0のメンバーの共有は、レベル参照または親子参照で実行できます。参照:
サンプルのデータ・ソース・ファイルおよびルール・ファイルが各構築方法について用意されています。各構築方法の結果は、図98に示されています。
レベル参照構築方法を使用して非レベル0の共有メンバーを作成するには、プライマリとセカンダリのロールアップが1つのレコードに指定されていることを確認します。セカンダリ・ロールアップは、1つのレコード内に必要な数だけ指定できます。
共有メンバーの親のフィールド・タイプを重複レベル(DUPLEVEL)として定義します。次に、レベル番号を入力します。同じ世代の共有メンバーを作成するには、セカンダリ・ロールアップのレベル番号にプライマリ・ロールアップと同じレベル番号が含まれるように設定します。データ・ソースの処理を実行すると、Essbaseにより、指定したレベルで親が作成され、その下に共有メンバーが挿入されます。
たとえば、製品ライン100、200および300をSodaという親と、TBCおよびGrandma'sという親の間で共有するには、図99のサンプル・データ・ファイルおよびルール・ファイルを使用します。このデータ・ソースおよびルール・ファイルは、アウトライン内にDiet、TBCおよびGrandma'sメンバーが存在する場合にのみ機能します。DUPLEVELフィールドは、指定したレベル・フィールドがアウトライン内にすでに存在する場合を除き、常に世代2の次元の子として作成されます。
複数のパースペクティブから合計を取得できるようにする方法として、レベル参照構築方法を使用することで、アウトライン内の異なるレベルに共有メンバーを配置する方法があります。たとえば、図101および図102のルール・ファイル(LEVELMUL.RUL)は、製品次元内の各レベルについて構築方法を指定しています:
次の図では、ルール・ファイルを右にスクロールして、レコードが長いため表示されていないメンバーを表示しています:
図102のデータを使用して次元構築を実行した場合、Essbaseにより、図103に示すアウトラインが構築されます:
この例では、パッケージ・タイプ(缶)のみでなく、パッケージ材料による分析も可能です。たとえば、アルミニウム缶とスチール缶の売上を比較する分析が可能です。
製品次元は疎次元なので、代替アウトライン設計を使用して同じ情報を取得できます。たとえば、Canの下位にSteelとAluminumをレベル0メンバーとして持つパッケージ・タイプに対してマルチレベルの属性次元を作成するとします。アウトラインの設計のガイドラインについては、データベース設計の分析を参照してください。
1つの次元のデータが複数のデータ・ソースに含まれていることがよくあります。複数のデータ・ソースから次元を構築し、複数のロールアップを作成する場合は、最も適切な構築方法を使用して最初のデータ・ソースをロードした後、親子参照構築方法を使用してその他のすべてのデータ・ソースをロードします。Essbaseの「次元構築の設定」ダイアログ・ボックスの「次元構築の設定」タブで「共有しない」オプションを選択解除して、共有を許可するように設定します。
"Soft Drinks" Cola "Soft Drinks" "Root Beer" Cola TBC "Root Beer" Grandma’s
Essbaseは、図104に示されているアウトラインを構築します:
続いて、次の2番目のデータ・ソースをロードし、親子参照構築方法を使用して製品とベンダーを関連付けます。Essbaseが共有を許可するように設定されていることを確認します。
Vendor TBC Vendor Grandma’s
Essbaseは、図105に示されているアウトラインを構築します:
重複するメンバー・アウトラインには、同じ名前を持つメンバーが複数含まれていますが、その値は共有されていません。一意のメンバー・アウトラインの場合、共有メンバーのみが同じ名前を持つことができます。重複メンバーのアウトラインの作成および使用。を参照してください。
ルール・ファイルを使用して、重複するメンバー・アウトライン内の次元、レベルおよび世代が一意であるか、重複するメンバーを含めることができるかを設定します。
ルール・ファイルでは、世代またはレベルの一意性が「次元プロパティ」ダイアログ・ボックスの「世代名」または「レベル名」タブで設定されます。
次元構築中に世代またはレベルの一意性を設定する方法については、『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