プライマリ・コンテンツに移動
Oracle® Fusion Middleware Oracle Business Intelligence Enterprise Editionメタデータ・リポジトリ作成者ガイド
12c (12.2.1.1.0)
E77227-02
目次へ移動
目次

前
前へ
次
次へ

レベルベース階層のディメンションの作成と管理

各ビジネス・モデルは1つ以上のディメンションを持つことができ、各ディメンションは1つ以上の論理レベルを持つことができ、各論理レベルには1つ以上の属性(列)を関連付けることができます。

次の各項では、ディメンションの作成方法について説明します。

レベルベース階層について

ディメンションには2つ以上の論理レベルが含まれます。論理レベルを作成する際の推奨順序は、まず総計レベルを作成し、次に子レベルを作成し、一番下のレベルまでこれを繰り返すというものです。

ディメンションの構成要素を次に示します。

  • 総計レベル。ディメンションの総計を表す特別なレベルです。各ディメンションが持つことのできる総計レベルは1つのみです。総計レベルにはディメンションの属性は含まれず、レベル・キーはありません。ただし、総計レベルにはメジャーを関連付けることができます。それらのメジャーの集計レベルは、常にディメンションの総計になります。

  • レベル。総計レベルを除くすべてのレベルは、1つ以上の列を持つ必要があります。ただし、表のすべての列を論理レベルに明示的に関連付ける必要はありません。論理レベルに関連付けられていない列は、ディメンション表に対応するディメンションの一番下のレベルに自動的に関連付けられます。同じディメンション表内のすべての論理列は、同じディメンションに関連付けられる必要があります。

    ディメンションに配置できるレベルの数には、制限はありません。レベルの合計数そのものが、問合せのパフォーマンスを左右する決定的な要因となるわけではありません。ただし、非常に複雑なSQL問合せでは、ディメンション内に2つか3つのレベルがあっただけでも、パフォーマンスに影響を及ぼす可能性があることに注意してください。

  • 階層。各ディメンションには1つ以上の階層が含まれます。すべての階層に共通リーフ・レベルが必要です。

    たとえば、時間ディメンションには会計上の階層とカレンダ上の階層が含まれることがあり、それらは共有の日のレベルを持つことがあります。日には会計年度とカレンダ年の2つの親があり、それらはいずれも全ルート・レベルの子となります。

    ビジネス・モデルとマッピング・レイヤーの論理階層は、プレゼンテーション・レイヤーの階層と異なり、独立したメタデータ・オブジェクトとして定義されません。この論理階層はレベル間の関連を通じて暗黙に存在します。

    ヒント:

    1つのレベルで非常に多くのメンバーが指定されるのを避けるために、階層に中間レベルを設定することをお薦めします。たとえば、500車種のモデルに関するデータを追跡する自動車会社に対してProductディメンションを作成する場合、500車種のモデル全部をAutomobilesの直下に置くのではなく、グレインのより細かい階層レベル(ミニバン、サブコンパクト、中型セダンなど)を作成する場合があります。この方法に従うと、問合せパフォーマンスが向上し、読取りとナビゲーションの容易なレポートやダイヤグラムを作成することができます。

  • レベル・キー。それぞれの論理レベル(総計レベルとして定義される最上位のレベルを除く)には、レベル・キーを構成する1つ以上の属性が存在する必要があります。レベル・キーは、各論理レベルの一意の要素を定義します。ディメンション表の論理キーは、ディメンションの一番下のレベルに関連付けられる必要があり、そのレベルのレベル・キーになる必要があります。

    論理レベルは複数のレベル・キーを持つことができます。その場合、そのレベルの主キーを指定してください。特定のレベルに集計コンテンツを持つすべてのディメンション・ソースには、そのレベルの主キーとなる列が含まれている必要があります。それぞれの論理レベルは1つのレベル・キーを持つ必要があります。このレベル・キーは、Oracle BIサーバーのユーザーがクリックしてドリルダウンするときに表示されます。これは、そのレベルの主キーであってもなくても構いません。表示するレベル・キーを設定するには、「レベル・キー」ダイアログで「表示に使用」オプションを選択します。

    Monthなどのレベル・キー(そのドメインにJanuary、Februaryなどの値が含まれている)を使用する際は気をつけてください。この場合、値は毎年繰り返されるため特定の月で一意ではありません。Monthをレベル・キーとして定義するには、上位レベル(たとえばYear)の属性を含める必要があります。Yearを追加するには、このダイアログで「追加」をクリックし、表示されるダイアログで論理列を選択します。

    より上位のレベルの属性を含めることによって、レベル・キーを確実に一意のものにしておかないと、問合せで予期しない結果が返されることがあります。たとえば、Oracle BIサーバーで、複数の物理問合せからの結果セットを結合する必要がある場合、結果に含まれていると予期される行がいくつか削除されている可能性があります。それは、それらの行がレベル・キー定義に照らして一意であると見なされないためです。

    レベル・キーは、生成された代理キー(time_key='1023793'など)ではなく、意味のあるビジネス・キー(Month_name='2010 July'など)にする必要があります。代理キーは、ソース表の1つのインスタンスにのみ適用される物理アーティファクトであるためです。対照的に、ビジネス名は、その論理列のどの物理インスタンスにもマップできます。たとえば、month_nameは、詳細な表、集計スターからの集計表およびフェデレーテッド・スプレッドシートの列にマップできます。物理レイヤーでは、依然として結合で代理キーが使用されます。そのため、ビジネス・モデルでビジネス・キーを使用しても、パフォーマンスまたは柔軟性の低下はありません。

  • 時間ディメンションおよび時系列キー。ディメンションを時間ディメンションとして指定することができます。時間ディメンションでは、少なくとも1つのレベルに時系列キーが存在する必要があります。時間ディメンションを設定および使用する際に従う必要があるガイドラインのリストを次に示します。

    • 時間ディメンションでは、少なくとも1つのレベルに時系列キーが存在する必要があります。詳細は、時間ディメンション内の時系列キーの選択とソートを参照してください。

    • AGO関数、TODATE関数およびPERIODROLLING関数を使用するすべての時系列メジャーは、時間レベル上にある必要があります。派生論理列として、AGOTODATEおよびPERIODROLLINGの集計が作成されます。

    • AGOTODATEおよびPERIODROLLING機能は、断片化されたディメンション論理表ソース、または同じ時間ディメンションでフラグメント化されたファクト・ソースのいずれに対してもサポートされていません。ファクト・ソースは他のディメンションでフラグメント化される場合があります。

      詳細は、時系列関数についてを参照してください。

  • 不均衡(不規則)な階層。不均衡(不規則)な階層とは、リーフ(子を持たないメンバー)の深さが必ずしも一定ではない階層を指します。たとえば、現在の月は日レベルでデータを持ち、前月は月レベルでデータを持ち、過去5年間は四半期レベルでデータを持つよう選択できます。

    ユーザー・アプリケーションは、ISLEAF関数を使用することによって、特定のメンバーから下に移動することが可能かどうかを判断できます。詳細は、<<ISLEAF- SQLリファレンスへのリンク>>を参照してください。

    データ・ソース内の存在しないメンバーについては、そのメンバーの値としてnull値が実装されます。すべての計算では、null値はその親の中の個別の子として扱われます。レベルベースのメジャーおよび集計計算では、存在しないすべてのノードがグループ化されます。

    不均衡階層は、必ずしも親子階層と同じではないことに注意してください。親子階層はその性質上不均衡になりますが、レベルベース階層も不均衡になることがあります。

  • スキップレベル階層。スキップレベル階層とは、特定の祖先レベルに値を持たないメンバーが存在する階層を指します。たとえば、Country-State-City-Districtの階層において、'Washington, D.C.'というCityはStateに所属しません。この場合、Countryレベル(USA)からCityレベル(Washington, D.C.)以降にドリルダウンします。

    問合せでは、スキップしたレベルは表示されず、計算にも影響を与えません。階層でソートする場合、これらのメンバーは直近の祖先の下に出現します。

    データ・ソース内の特定のレベルにおいて存在しないメンバーについては、そのメンバーの値としてnull値が実装されます。すべての計算では、null値はその親の中の個別の子として扱われます。レベルベースのメジャーおよび集計計算では、スキップされたすべてのノードがグループ化されます。

この図は、不均衡とスキップレベルの両方の特徴を持つ階層を示しています。たとえば、A-Brand 4、B-LOB 3およびType 5は不均衡なブランチであり、A-Brand 2とType 3の間やB-LOB 2とProduct 6などの間には、スキップが存在します。

レベルベース階層におけるディメンション階層レベルの使用について

ディメンション階層レベルの使用方法を説明します。

ディメンション階層レベルを使用して、次の操作を実行できます。

  • 集計ナビゲーションを設定する

  • レベルベース・メジャーの計算を構成する(「レベルベース・メジャーの計算」を参照)

  • Oracle BIプレゼンテーション・サービスのユーザーがデータ要求をドリルダウンするときにどの属性が表示されるかを決定する

レベルベース階層のディメンション、レベル、キーの手動作成

レベルベース階層で階層レベルを作成および管理する方法を説明します。

次の各項で説明されているタスクを実行します。

レベルベース階層のディメンションの作成

ディメンションを作成した後、1つ以上の論理ディメンション表内の属性(列)、および論理ファクト表内のレベルベース・メジャーに、各ディメンションを関連付けることができます。

論理列をディメンション・レベルに関連付けると、それらの列が存在する表が「ディメンション」ダイアログの「表」タブに表示されます。

レベルベース階層のディメンションを作成するには:

  1. 管理ツールのビジネス・モデルとマッピング・レイヤーでビジネス・モデルを右クリックし、「新規オブジェクト」「論理ディメンション」「レベル・ベースの階層を持つディメンション」を選択します。

    注意:

    このオプションを選択できるのは、ディメンションが関連付けられていないディメンション表が1つ以上存在する場合のみです。

  2. 「論理ディメンション」ダイアログの「一般」タブで、ディメンションの名前を入力します。

    デフォルトのルート・レベル」フィールドは、論理列をディメンション・レベルに関連付けると自動的に設定されます。

  3. ディメンションが時間ディメンションである場合は、「時間」を選択します。
  4. ディメンションが不均衡ディメンションである場合は、「不規則」を選択します。
  5. ディメンションがスキップレベル・ディメンションである場合は、「スキップ・レベル」を選択します。

    注意:

    物理レイヤーに設定されている物理階層タイプと、ビジネス・モデルとマッピング・レイヤーで選択するディメンション・プロパティを一致させることを、ベスト・プラクティスとしてお薦めします。詳細は、物理階層オブジェクトでの作業を参照してください。

    また、問合せが動作するためには、不規則なディメンションやスキップ・レベルのディメンションのプロパティが正しく設定されていることを確認する必要があります。

  6. (オプション)ディメンションの説明を入力します。
  7. 「OK」をクリックします。

ディメンション内の論理レベルの作成

ディメンション内に論理レベルを作成するときには、レベルのタイプを特定し子レベルを定義することによって階層も作成します。

マルチディメンション・データ・ソースの階層作成の詳細は、マルチディメンション・データ・ソースに対するビジネス・モデル・オブジェクトの自動作成を参照してください。

ディメンション内の論理レベルに対して全般的なプロパティを定義するには:

  1. 管理ツールのビジネス・モデルとマッピング・レイヤーでディメンションを右クリックし、「新規オブジェクト」「論理レベル」を選択します。
  2. 「論理レベル」ダイアログの「一般」タブで、論理レベルの名前を入力します。
  3. このレベルの要素数」で、この論理レベルに存在する要素数を指定します。このレベルが総計レベルである場合は、このフィールドは空白のままにします。その場合、システムによってデフォルト値1が設定されます。

    この数は必ずしも正確である必要はありませんが、論理レベル間の数の比率は正確である必要があります。リレーショナル・ソースの場合、レベル・キーの行数を取得し、その数を要素数として使用することができます。多次元ソースの場合、そのレベルのメンバー数を使用することができます。

    Oracle BIサーバーは、使用する集計ソースを選択する際にこの数を使用します。たとえば、集計ナビゲーションが使用される場合、異なるグレインに複数のファクト・ソースが存在します。Oracle BIサーバーは、それぞれの修飾ソースの合計行数を推測する方法として、その修飾ソースの各レベルの要素数を乗算します。次にOracle BIサーバーは、各ソースの結果を比較し、要素数の合計が最も少ないソースを選択して、問合せに回答します。要素数の合計が最も少ないソースが最も高速であると想定されます。

  4. 必要に応じて、次のいずれかのオプションを選択します。
    • 論理レベルが総計レベルの場合、「総計レベル」を選択します。1つのディメンションには、総計レベルは1つしか存在できません。

    • 特定のレベルのメジャー値がその親レベルの完全な集計メジャーを構成する場合は、「上位レベルの集計へのロールアップをサポート」を選択します。

  5. 子の論理レベルを定義するには、「追加」をクリックします。
  6. 「参照」ダイアログで、子の論理レベルを選択し、「OK」をクリックします。

    「子レベル」ペインに子レベルが表示されます。

  7. 以前に定義した子レベルを削除するには、「子レベル」ペインで対象のレベルを選択し、「削除」をクリックします。

    対象の子レベルとそのすべての子孫レベルが、「子レベル」ペインから削除されます。

  8. (オプション)論理レベルの説明を入力します。
  9. 「OK」をクリックします。

論理列およびその表のディメンション・レベルへの関連付け

ディメンション内にすべての論理レベルを作成したら、総計レベルを除くすべての論理レベルに、ディメンション表から1つ以上の列をドラッグ・アンド・ドロップします。

ディメンションに最初に列をドラッグするとき、そのディメンションに論理表が関連付けられます。ドラッグ・アンド・ドロップ操作によって、該当するディメンションのレベルに論理列を関連付けます。論理列に論理レベルを関連付けるには、ある論理レベルの列を別の論理レベルにドラッグします。

ディメンション表の論理キーを構成する論理列は、ディメンションの最下位レベルに関連付ける必要があります。

ディメンションのレベルに論理列を関連付けると、「ディメンション」ダイアログの「表」タブに、それらの列が存在する表が表示されます。

例については、次の項を参照してください。

時間ディメンションの場合、ソース表内の時間に関連するすべての列を時間ディメンション内で定義するようにしてください。たとえば、時間に関連する論理表にMonth Name列およびMonth Code列が含まれている場合、ディメンション内の適切なレベルに両方の列をドラッグする必要があります。この図は、論理列を論理レベルに関連付ける方法について示しています。

ディメンションに関連付けられている表を検証するには:

  1. 管理ツールのビジネス・モデルとマッピング・レイヤーで、ディメンションをダブルクリックします。
  2. 「ディメンション」ダイアログで「表」タブをクリックします。

    「表」タブのリストには、そのディメンションに関連付けられている表が含まれています。レベルベースのメジャーを作成した場合、このリストには、論理ディメンション表が1つのみ含まれ、論理ファクト表が1つ以上含まれます。

  3. OK」または「取消」をクリックし、「ディメンション」ダイアログを閉じます。

レベルベース・メジャーの計算

レベルベース・メジャーとは、集計の特定のレベルにおいて値が常に計算される列です。

その場合、CountryRevenue、RegionRevenueおよびCityRevenueを測定する列を設定することができます。たとえば、ある企業が国、地域および都市に基づいて収益を測定するとします。

プレゼンテーション階層を含む問合せにレベル・ベースのメジャーの列が含まれており、問合せグレインがその列固有の集計レベルよりも上位の場合、問合せの結果としてnullが返されます。リクエストに通常の列のみが含まれていて、階層列が含まれていない場合は、レベルベースのメジャーはnullに置換されません。

メジャーAllProductRevenueは、総計レベルのレベルベース・メジャーの例です。レベルベース・メジャーでは、1回の問合せで複数の集計レベルのデータを返すことができます。レベルベースのメジャーはシェア・メジャーを作成する際にも便利です。シェア・メジャーは、なんらかのメジャーをレベルベース・メジャーで除算してパーセントを算出することにより計算します。たとえば、営業担当者の売上を地域の売上で除算することによって、その地域で各営業担当者が貢献した売上の比率を計算することができます。

たとえば、これらの計算を設定するには、Grandtotal、Country、RegionおよびCityのレベルを含むリポジトリ内にディメンション階層を構築する必要があります。この階層には、CountryとRegionの間に1対多の関係を定義し、RegionとCityの間に1対多の関係を定義するメタデータが含まれます。各国には多くの地域がありますが、各地域は1つの国の中にあります。同様に、各地域には多くの都市がありますが、各都市は1つの地域の中にあります。

ディメンション階層を構築したら、CountryRevenue、RegionRevenue、およびCityRevenueのそれぞれに1つの論理列を作成する必要があります。これらの列は、ソースとしてRevenue論理列を使用します。Revenue列にはデフォルトの集計ルールSUMがあり、基礎となるデータベース内にソースがあります。

CountryRevenue列、RegionRevenue列およびCityRevenue列を、それぞれCountryレベル、RegionレベルおよびCityレベルにドラッグします。これらの列のいずれかを要求する問合せでは、そのレベルで集計された売上が返されます。

この図は、この例のビジネス・モデルとマッピング・レイヤー内のビジネス・モデルを示しています。

総計ディメンション階層

売上に総計ディメンション階層を使用する方法について説明します。

TotalProducts (総計レベル)、Brands、およびProductsの各レベルと、合計のデフォルト集計ルールで定義されたRevenue列を持つ製品ディメンション階層があると、AllProductRevenue論理列を作成できます。AllProductRevenue列は、ソースとしてRevenueを使用します。AllProductRevenue列を総計レベルにドラッグします。AllProductRevenue列を含む問合せは、すべての製品の総売上を返します。BrandsまたはProductsのいかなる制約にも関係なく値が返されます。

他の表内の列に制約がある場合、総計は問合せのスコープに制限されます。たとえば、問合せのスコープが1999年および2000年のデータを要求する場合、製品売上の総計は、1999年および2000年のすべての製品の売上となります。

A、B、Cの3つの製品があり、それぞれの売上の合計が100、200、300である場合、製品売上の総計は600です(各製品の売上の合計)。この例で説明しているリポジトリを設定している場合の問合せとその結果を示します。

SELECT product, productrevenue, allproductrevenue
FROM sales_subject_area
WHERE product IN 'A' or 'B'			

結果は次のとおりです。

PRODUCT;;PRODUCTREVENUE;;ALLPRODUCTREVENUE
A;;;;;;;;100;;;;;;;;;;;;;600
B;;;;;;;;200;;;;;;;;;;;;;600			

AllProductRevenue列は、問合せで制約が設定された製品に関係なく、常に600の値を返します。

ディメンション・レベルの主キーの特定

レベルの主キーを特定するには、「論理レベル」ダイアログの「キー」タブを使用します。

ディメンション・レベルの主キーを指定するには:

  1. 管理ツールのビジネス・モデルとマッピング・レイヤーで、ディメンションを展開し、ディメンションの最上位のレベル(総計レベル)を展開します。

  2. 総計レベルの下の論理レベルをダブルクリックします。

  3. 「論理レベル」ダイアログで「キー」タブをクリックします。

  4. 「キー」タブで、「主キー」のリストからレベル・キーを選択します。

    レベル・キーが1つしかない場合は、それがデフォルトで主キーとなります。

  5. リストに列を追加するには、次の手順を実行します。

    1. 「論理レベル」ダイアログで「新規」をクリックします。

    2. 「論理レベル・キー」ダイアログで、キーの名前を入力します。

    3. 「論理レベル・キー」ダイアログで、列を選択するか、または「追加」をクリックします。

    4. 追加」をクリックした場合は、「参照」ダイアログで列を選択し、「OK」をクリックします。

      選択した列が「論理レベル・キー」ダイアログの「」リストに表示され、自動的に選択されます。

    注意:

    LOOKUP関数の結果として導出された論理列を、主論理キーとして使用することはできません。この制限が存在する理由は、LOOKUPの操作は集計が計算された後に適用されますが、レベル・キー列は集計が計算される前に利用可能である必要があるためです(レベル・キー列は集計計算の粒度を定義するため)。

    LOOKUP関数の結果として導出された論理列は、2次論理レベル・キーとして使用できます。

  6. 時間ディメンション内のレベルである場合は、時系列キーを選択し、名前によってキーをソートすることができます。

  7. (オプション)キーの説明を入力し、「OK」をクリックします。

  8. ステップ2 - ステップ7を繰り返し、他の論理レベルに主キーを追加します。

  9. 「論理レベル」ダイアログで「OK」をクリックします。

時間ディメンション内の時系列キーの選択とソート

時間ディメンションでは、少なくとも1つのレベルに時系列キーが存在する必要があります。任意のレベルで1つ以上の時系列キーを選択し、レベル内でキーをソートすることができますが、使用されるのは最初の時系列キーのみです。

時間ディメンション内で時系列キーを選択しソートするには:

  1. 管理ツールのビジネス・モデルとマッピング・レイヤーで、時間ディメンションを展開し、ディメンションの最上位のレベル(総計レベル)を展開します。

    注意:

    ディメンションが時間ディメンションとして認識されるためには、「ディメンション」ダイアログの「一般」タブで「時間」を選択する必要があります。

  2. 総計レベルの下の論理レベルをダブルクリックします。
  3. 「論理レベル」ダイアログで「キー」タブをクリックします。
  4. 時系列キーを選択するには、「キー」タブで「時系列キー」オプションを選択します。このオプションを表示させるには、右にスクロールする必要があります。
  5. 時系列キーをソートするには、「キー」タブで時系列キーを選択して、「編集」をクリックします。
  6. 「時系列キー」ダイアログで、時系列キーの列を選択し、「上へ」または「下へ」をクリックして列の順序を入れ替え、「OK」をクリックします。

優先ドリル・パスへのディメンション・レベルの追加

「優先ドリル・パス」タブでは、Oracle BIプレゼンテーション・サービスのユーザーがデータ要求をドリルダウンする際に使用するドリル・パスを特定します。

このタブは、ディメンション・レベル階層によって定義される通常のドリル・パスの外部にあるドリル・パスを指定する場合にのみ使用します。このドリル・パスはほとんどの場合、あるディメンションから別のディメンションにドリルするのに使用されます。ドリル・パスから論理レベルを削除したり、ドリル・パス内の論理レベルを並べ替えることができます。

優先ドリル・パスにディメンション・レベルを追加するには:

  1. 追加」をクリックして「参照」ダイアログを開き、ドリル・パスに含める論理レベルを選択します。現在のディメンションまたは他のディメンションから論理レベルを選択することができます。
  2. OK」をクリックし、「レベル」ダイアログに戻ります。

    「名前」ペインにレベルの名前が追加されます。

時間ディメンションの論理レベルへの順序番号の追加

時間ディメンションへの絶対または相対順序番号の追加は、時系列関数を最適化し、問合せ時間が改善する場合があります。

デフォルトでは、Oracle BIサーバーは、複雑なRANK物理SQL式を使用して時間ディメンションの順序番号を生成します。時間ディメンションの論理レベルへの絶対または相対順序番号の追加は、ランク式のあらかじめ計算された結果を含む時間ディメンション表の直接の列参照を提供します。オプションのこのマッピングは、データ・ソースに対してOracle BIサーバーが実行しやすい簡単な問合せを生成します。

順序番号は、特定のレベルの時間ディメンション・メンバーの列挙です。列挙は密度が高く(ギャップがなく)、実際の時間順序に対応する必要があります。たとえば、年の月に1から12を列挙できます。

順序番号を追加するには:

  1. 管理ツールのビジネス・モデルとマッピング・レイヤーで、時間ディメンションを検索し、対応する論理レベルをダブルクリックします。
  2. 「論理レベル」ダイアログで、「順序番号」タブをクリックし、順序番号のタイプを指定して、論理レベルに追加します。次のいずれかを選択します:
    • 絶対 – 列に参照なしで時間ディメンションのメンバーを列挙する場合に絶対順序番号を構成するには、このオプションを選択します。たとえば、カレンダ年などです。

    • 相対 – 親レベルに対して相対的な時間ディメンションのメンバーを列挙する列がある場合に相対順序番号を構成するには、このオプションを選択します。たとえば、年の月に1から12を指定する可能性があります。

  3. 「OK」をクリックします。

レベルベース階層のディメンションの自動作成

論理ディメンション表にディメンションが存在しない場合、その表から論理ディメンションを自動的に設定することができます。

ディメンションを自動的に作成する際には、管理ツールは論理表ソースとそれらのソース内の列マッピングを調べ、論理表ソース内の物理表の間の結合を使用して、論理レベルおよびレベル・キーを決定します。したがって、ディメンション表にすべての論理表ソースが定義された後は、この方法でディメンションを作成するのが最良です。

次のルールが適用されます。

  • 「ディメンションの作成」が利用できるのは、選択されている論理表がディメンション表であり(1:Nの論理結合によって定義)、この表にディメンションが関連付けられていない場合のみです。

  • 自動的に作成されたディメンションでは、論理表と同じ名前が使用され、接尾辞としてDimが付加されます。たとえば、表の名前がPeriodsである場合、ディメンションの名前は「Periods Dim」となります。

  • 総計レベルには、自動的に「logical_table_name Total」という名前が付けられます。たとえば、Periods Dim表の総計レベルは「Periods Total」となります。

  • ソース内に複数の表が存在する場合、ソース内の表の間の結合関係によって、最下位のレベルの属性が含まれる物理表が決定されます。階層内の最下位レベルは、「logical_table_name Detail」という名前になります。たとえば、periods表の最下位レベルは「Periods Detail」となります。

  • ディメンション表の論理キーは、階層の最下位レベルにマップされ、レベル・キーとして指定されます。この論理列は、ディメンション・ソース内の最下位レベルの表のキー列にマップされます。

    • ソース内に2つ以上の物理表が存在する場合、それらの表のキーにマップされる列は、追加の論理レベルとなります。これらの追加のレベルの名前には、それらのキー列の論理列の名前が使用されます。

    • 結合の順序によって、論理レベルの階層内の配置が決定されます。これらの新しい論理レベルのレベル・キーは、ソース内の表のキーにマップされる論理列として設定されます。

  • 複数の論理表ソースが存在する場合、ツールは属性マッピングおよび物理結合を使用して、物理ソース内の表の階層順序を決定します。たとえば、3つのソース(A、B、C)があり、それぞれに1つの物理表と、10個、15個、3個の属性の属性マッピングが含まれているとします(他の論理列から作成された列は数えません)。この表のディメンションを自動作成した際の結果を次に示します。

    • 管理ツールによって、4つの論理レベルが含まれ、総計と詳細レベルを計算するディメンションが作成されます。

    • ソースB内の表のキー(このキーはマップされている列数が最も多く、論理表キーの列マッピングが含まれています)は、詳細レベルのレベル・キーになります。

    • 詳細レベルの親は、ソースA内の物理表のキーにマップされる論理列の名前を持つ論理レベルになります。

    • AとBの両方にマップされるすべての属性は、レベルAに関連付けられます。

    • レベルAの親は、ソースC内の物理表のキーにマップされる論理列の名前を持つ論理レベルになります。

    • AとCの両方にマップされるすべての列は、レベルCに関連付けられます。

  • 物理ソース内の表結合は、階層の分割を生じさせるパターンを持つ可能性があります。たとえば、Product表がFlavor表およびSubtype表に結合しているとします。これにより、productの詳細レベルには、flavorレベルとsubtypeレベルの2つの親が生じる可能性があります。

  • 次の場合、ディメンションの自動作成はできません。

    • 結合とレベルを持つディメンションがすでに作成されている場合、右クリック・メニューに「ディメンションの作成」は表示されません。

    • 表が他の表とまだ結合されていない場合、その表はファクト表と見なされるため、このオプションは利用できません。

  • スノーフレーク・スキーマにおいて、ソースが1つのみの表を使用してディメンションを自動作成すると、子表が自動的に階層内に組み込まれます。子表は、総計レベルと詳細レベルの間の中間のレベルを形成します。ディメンション表に複数の子表が存在する場合、階層は分割階層になります。

ディメンションを自動作成するには:

  1. 管理ツールでリポジトリを開きます。
  2. ビジネス・モデルとマッピング・レイヤーで、ディメンションに関連付けられていない論理ディメンション表を右クリックします。
  3. 右クリック・メニューから論理ディメンションを作成を選択し、「レベル・ベースの階層を持つディメンション」または「親子階層を持つディメンション」を選択します。

    ビジネス・モデルとマッピング・レイヤーに新しいディメンションが表示されます。

論理レベル数の自動設定

レベル評価を使用すると、1つ以上のディメンション階層に自動的にレベル数を設定できます。

レベル数は、最適な問合せ計画を決定して、システムの全体的なパフォーマンスを向上するために問合せエンジンで使用されます。

オンライン・モードでリポジトリを開き、問合せに対してビジネス・モデルが使用できることを確認する必要があります。「ビジネス・モデルとマッピング」レイヤーで、次の論理レイヤー要素を選択して、レベル評価コマンドを実行できます。

  • ビジネス・モデル。ビジネス・モデル・オブジェクトを選択すると、Oracle BI管理ツールは、ビジネス・モデル内のすべてのオブジェクトをチェックアウトしようとします。

  • ディメンション。ディメンションの整合性チェックを実行し、ディメンションが論理的に正当であるかどうかを確認します。

  • ビジネス・モデルとディメンションの組合せ。複数のディメンションと複数のビジネス・モデルを個別に選択できます。

レベル評価コマンドを実行すると、次に説明するように、レベル数に対する整合性チェックが起動されます。

  • レベル・キーが有効であるかチェックします。レベル内の列は参照整合性を持ちます。

  • 親子関係をチェックします。親のレベル数が子のレベル数よりも大きい場合、エラーが返されます。

  • 評価されたすべての数、およびエラーまたは整合性に関する警告がリストされた実行レポートが生成されます。

  • 11gバージョンを使用している場合、問合せとエラーはOracle BIサーバーnqquery.logに記録されます。Oracle BI EE 12cを使用している場合、問合せとエラーはDOMAIN_Home/servers/obis1/logs内のobis1_query.logに記録されます。

    これらの情報をログ・ファイルに記録するには、ログ・レベルを4以上に設定します。ロギングの詳細は、『Oracle Business Intelligence Enterprise Editionシステム管理者ガイド』のOracle Business Intelligenceの問題の診断と解決に関する項を参照してください。

論理レベル数を自動設定するには:

  1. 管理ツールで、リポジトリをオンライン・モードで開きます。
  2. 1つ以上のビジネス・モデルおよびディメンション・オブジェクトを右クリックし、「レベル評価」を選択します。
  3. 「オブジェクトのチェックアウト」ダイアログで「はい」をクリックし、リスト内に表示されているオブジェクトをチェックアウトします。

    レベル評価を実行するにはアイテムをチェックアウトする必要があるため、「いいえ」をクリックすると操作は中断されます。

    管理ツール・ダイアログに、ディメンション・レベル数のリスト、およびエラーまたは警告メッセージが表示されます。

オブジェクトをチェックインするときに、リポジトリのグローバル整合性をチェックすることができます。