レベルベース階層のディメンションの作成と管理
各ビジネス・モデルは1つ以上のディメンションを持つことができ、各ディメンションは1つ以上の論理レベルを持つことができ、各論理レベルには1つ以上の属性(列)を関連付けることができます。
次の各項では、ディメンションの作成方法について説明します。
レベルベース階層について
ディメンションには2つ以上の論理レベルが含まれます。論理レベルを作成する場合は、総計レベルを作成し、次に子レベルを作成して、一番下のレベルまでこれを繰り返す必要があります。
ディメンションの構成要素を次に示します。
-
総計レベル
総計レベルは、ディメンションのすべての合計の総計を表します。各ディメンションが持つことのできる総計レベルは1つのみです。総計レベルにはディメンションの属性は含まれず、レベル・キーはありません。総計レベルにはメジャーを関連付けることができます。それらのメジャーの集計レベルは、ディメンションの総計になります。総計レベルは列なしで存在できます。
-
レベル
レベルには1つ以上の列が存在している必要があります。表のすべての列を論理レベルに明示的に関連付ける必要はありません。論理レベルに関連付けられていない列は、ディメンション表に対応するディメンションの最下位レベルに自動的に関連付けられます。同じディメンション表内のすべての論理列は、同じディメンションに関連付ける必要があります。
ディメンションのレベルの数に制限はありません。非常に複雑なSQL問合せを使用する場合、ディメンション内の2つか3つのレベルが問合せのパフォーマンスに影響を及ぼす可能性があります。
-
階層
各ディメンションには1つ以上の階層が含まれます。すべての階層に共通リーフ・レベルが必要です。たとえば、時間ディメンションには会計上の階層とカレンダ上の階層が含まれることがあり、それらは共有の日のレベルを持つことがあります。この例では、日には会計年度とカレンダ年の2つの親があり、それらはいずれも全ルート・レベルの子となります。
ビジネス・モデルとマッピング・レイヤーの論理階層は、プレゼンテーション・レイヤーの階層と異なり、独立したメタデータ・オブジェクトとして定義されません。論理階層はレベル間の関連を通じて暗黙に存在します。
1つのレベルで非常に多くのメンバーが指定されるのを避けるために、階層に中間レベルを定義できます。たとえば、500車種のモデルに関するデータを追跡する自動車会社に対してProductディメンションを作成する場合、グレインのより細かい階層レベル(ミニバン、サブコンパクト、中型セダンなど)を作成する場合があります。問合せパフォーマンスが向上し、読取りとナビゲーションの容易なレポートやダイヤグラムを作成できます。
-
レベル・キー
それぞれの論理レベル(総計レベルを除く)には、レベル・キーを構成する1つ以上の属性が存在する必要があります。レベル・キーは、各論理レベルの一意の要素を定義します。ディメンション表の論理キーをディメンションの一番下のレベルに関連付ける必要があります。
論理レベルは複数のレベル・キーを持つことができます。論理レベルに複数のレベル・キーがある場合、レベルの主キーとしてキーを指定します。特定のレベルに集計コンテンツを持つすべてのディメンション・ソースには、そのレベルの主キーとなる列が含まれている必要があります。それぞれの論理レベルは1つのレベル・キーを持つ必要があります。このレベル・キーは、Oracle BIサーバーのユーザーがオブジェクトを選択してドリルダウンするときに表示されます。レベルへのユーザー・アクセスを提供するために任意のレベル・キーを使用できます。
一意のレベル・キーを作成する必要があります。月は一意のレベル・キーではありません。月を含む一意のレベル・キーを作成するには、年属性をキーの一部として含めます。
より上位のレベルの属性を含めることによって、レベル・キーを確実に一意のものにしておかないと、問合せで予期しない結果が返されることがあります。たとえば、Oracle BIサーバーで、複数の物理問合せからの結果セットを結合する必要がある場合、結果に含まれていると予期される行がいくつか削除されている可能性があります。それは、それらの行がレベル・キー定義に照らして一意であると見なされないためです。
time_key='1023793'などの生成された代理キーではなく、Month_name='2010 July'などの共通のビジネス・キーを使用して有効なレベル・キーを作成します。生成された代理キーは、ソース表の単一のインスタンスにのみ適用される物理アーティファクトです。ビジネス・キーはその論理列の物理インスタンスにマップできます。たとえば、month_nameは、詳細な表、集計スターからの集計表およびフェデレーテッド・スプレッドシートの列にマップできます。物理レイヤーは結合で代理キーを使用します。ビジネス・キーを使用すると、ビジネス・モデルにパフォーマンスまたは柔軟性のペナルティが課せられません。
-
時間ディメンションおよび時系列キー
ディメンションを時間ディメンションとして指定することができます。時間ディメンションでは、少なくとも1つのレベルに時系列キーが存在する必要があります。時間ディメンションを設定および使用する場合は、次のガイドラインに従います。
-
時間ディメンションの1つ以上のレベルに時系列キーが必要です。時間ディメンションでの時系列キーの選択とソートを参照してださい。
-
AGO
関数、TODATE
関数およびPERIODROLLING
関数を使用するすべての時系列メジャーは、時間レベル上にある必要があります。派生論理列として、AGO
、TODATE
およびPERIODROLLING
の集計が作成されます。 -
AGO
、TODATE
およびPERIODROLLING
機能は、断片化されたディメンション論理表ソース、または同じ時間ディメンションでフラグメント化されたファクト・ソースのいずれに対してもサポートされていません。ファクト・ソースは他のディメンションでフラグメント化される場合があります。「時系列関数について」を参照してください。
-
- 不均衡または不規則な階層
不均衡または不規則な階層とは、リーフ(子を持たないメンバー)の深さが必ずしも一定ではない階層を指します。たとえば、現在の月は日レベルでデータを持ち、前月は月レベルでデータを持ち、過去5年間は四半期レベルでデータを持つよう選択できます。
ユーザー・アプリケーションは、ISLEAF関数を使用することによって、特定のメンバーから下に移動することが可能かどうかを判断できます。
データ・ソース内の存在しないメンバーについては、そのメンバーの値として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です。
この数は正確である必要はありませんが、論理レベル間の数の比率は正確である必要があります。リレーショナル・ソースの場合、レベル・キーの行数を取得し、その数を要素数として使用することができます。多次元ソースの場合、そのレベルのメンバー数を使用することができます。
Oracle BIサーバーは、使用する集計ソースを選択する際にこの数を使用します。たとえば、集計ナビゲーションが使用される場合、異なるグレインに複数のファクト・ソースが存在します。Oracle BIサーバーは、それぞれの修飾ソースの合計行数を推測する方法として、その修飾ソースの各レベルの要素数を乗算します。次にOracle BIサーバーは、各ソースの結果を比較し、要素数の合計が最も少ないソースを選択して、問合せに回答します。要素数の合計が最も少ないソースが最も高速であると想定されます。
- 管理ツールのビジネス・モデルとマッピング・レイヤーでディメンションを右クリックし、「新規オブジェクト」→「論理レベル」を選択します。
- 「論理レベル」ダイアログの「一般」タブで、論理レベルの名前を入力します。
- 「このレベルの要素数」で、この論理レベルに存在する要素数を指定します。
- 必要に応じて、次のいずれかのオプションを選択します。
- 論理レベルが総計レベルの場合、「総計レベル」を選択します。1つのディメンションには、総計レベルは1つしか存在できません。
- 特定のレベルのメジャー値がその親レベルの完全な集計メジャーを構成する場合は、「上位レベルの集計へのロールアップをサポート」を選択します
- 「追加」をクリックして、子の論理レベルを定義します。
- 「参照」ダイアログで、子の論理レベルを選択し、「OK」をクリックします。
- 「子レベル」ペインで以前に定義した子レベルを削除します。「子レベル」ペインで対象のレベルを選択し、「削除」をクリックします。
- オプション: 論理レベルの説明を入力します。
- 「OK」をクリックします。
論理列およびその表のディメンション・レベルへの関連付け
ディメンション内にすべての論理レベルを作成したら、総計レベルを除くすべての論理レベルに、ディメンション表から1つ以上の列をドラッグ・アンド・ドロップします。
ディメンションに最初に列をドラッグするとき、そのディメンションに論理表が関連付けられます。ドラッグ・アンド・ドロップ操作によって、該当するディメンションのレベルに論理列を関連付けます。論理列に論理レベルを関連付けるには、ある論理レベルの列を別の論理レベルにドラッグします。
ディメンション表の論理キーを構成する論理列は、ディメンションの最下位レベルに関連付ける必要があります。
ディメンションのレベルに論理列を関連付けると、「ディメンション」ダイアログの「表」タブに、それらの列が存在する表が表示されます。
例については、次の項を参照してください。
時間ディメンションの場合、ソース表内の時間に関連するすべての列を時間ディメンション内で定義するようにしてください。たとえば、時間に関連する論理表にMonth Name列およびMonth Code列が含まれている場合、ディメンション内の適切なレベルに両方の列をドラッグする必要があります。この図は、論理列を論理レベルに関連付ける方法について示しています。
レベルベース・メジャーの計算
レベルベース・メジャーとは、集計の特定のレベルにおいて値が常に計算される列です。
その場合、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つのみ存在する場合は、それがデフォルトで主キーとなります。
-
リストに列を追加するには、次のステップを実行します。
-
「論理レベル」ダイアログで「新規」をクリックします。
-
「論理レベル・キー」ダイアログで、キーの名前を入力します。
-
「論理レベル・キー」ダイアログで、列を選択するか、または「追加」をクリックします。
-
「追加」をクリックした場合は、「参照」ダイアログで列を選択し、「OK」をクリックします。
選択した列が「論理レベル・キー」ダイアログの「列」リストに表示され、自動的に選択されます。
LOOKUP
関数の結果である派生論理列は、1次論理レベル・キーの一部として使用できません。集計が行われた後にLOOKUP
操作が適用されるため、この制限が存在します。ただし、レベル・キー列によって集計の計算粒度が定義されるため、レベル・キー列は集計を行う前に使用可能にしておく必要があります。LOOKUP
関数の結果である派生論理列は、2次論理レベル・キーとして使用できます。 -
-
時間ディメンション内のレベルである場合は、時系列キーを選択し、名前によってキーをソートすることができます。
-
(オプション)キーの説明を入力し、「OK」をクリックします。
-
ステップ2 - ステップ7を繰り返し、他の論理レベルに主キーを追加します。
-
「論理レベル」ダイアログで「OK」をクリックします。
時間ディメンションでの時系列キーの選択とソート
時間ディメンションでは、少なくとも1つのレベルに時系列キーが存在する必要があります。任意のレベルで1つ以上の時系列キーを選択し、レベル内でキーをソートすることができますが、使用されるのは最初の時系列キーのみです。
時系列キーにおける列の順序に多数の列がある場合は注意してください。SQLのORDER BY
句を使用して、Oracle BI管理ツールの「時系列キー」ダイアログで、現実的な時系列順序を反映する列に対して列の順序を設定します。1年に四半期の範囲は1から4までであるため、年の前に四半期を使用してORDER BY
句を使用する(Quarter, Year)ことは、正しい使用方法ではありません。正しくない順序だと、すべての第1四半期がすべての年にわたって表示され、その次に第2四半期があれば表示されるというように続きます。結果を修正するには、ORDER BY
句で(Year, Quarter)を使用します。
ディメンションを時間ディメンションとして認識するためには、「ディメンション」ダイアログの「一般」タブで「時間」を選択する必要があります。
- 管理ツールのビジネス・モデルとマッピング・レイヤーで、時間ディメンションを展開し、ディメンションの最上位のレベル(総計レベル)を展開します。
- 総計レベルの下の論理レベルをダブルクリックします。
- 「論理レベル」ダイアログで、「キー」タブをクリックします。
- 時系列キーを選択するには、「キー」タブで「時系列キー」オプションを選択します。
- 時系列キーをソートするには、「キー」タブで時系列キーを選択して、「編集」をクリックします。
- 「時系列キー」ダイアログで、時系列キーの列を選択し、「上」または「下」をクリックして列の順序を入れ替え、「OK」をクリックします。
優先ドリル・パスへのディメンション・レベルの追加
「優先ドリル・パス」タブでは、Oracle BIプレゼンテーション・サービスのユーザーがデータ要求をドリル・ダウンする際に使用するドリル・パスを特定します。
このタブは、ディメンション・レベル階層によって定義される通常のドリル・パスの外部にあるドリル・パスを指定する場合にのみ使用します。これは、一般的に、あるディメンションから別のディメンションにドリルするために使用されます。ドリル・パスから論理レベルを削除したり、ドリル・パス内の論理レベルを並べ替えることができます。
- 優先ドリル・パスにディメンション・レベルを追加するには、「追加」をクリックして「参照」ダイアログを開き、ドリル・パスに含める論理レベルを選択します。現在のディメンションまたは他のディメンションから論理レベルを選択することができます。
- 「 OK」をクリックし、「レベル」ダイアログに戻ります。
時間ディメンションの論理レベルへの順序番号の追加
時間ディメンションへの絶対または相対順序番号の追加は、時系列関数を最適化し、問合せ時間が改善する場合があります。
デフォルトでは、Oracle BIサーバーは、複雑なRANK物理SQL式を使用して時間ディメンションの順序番号を生成します。時間ディメンションの論理レベルへの絶対または相対順序番号の追加は、ランク式のあらかじめ計算された結果を含む時間ディメンション表の直接の列参照を提供します。オプションのこのマッピングは、データ・ソースに対してOracle BIサーバーが実行しやすい簡単な問合せを生成します。
順序番号は、特定のレベルの時間ディメンション・メンバーの列挙です。ギャップがなく(密度が高い)列挙を使用してください。列挙は実際の時間順序に対応する必要があり、たとえば、年の月に1から12を列挙できます。
順序番号型のオプションは次のとおりです。
-
絶対 - 列に参照なしで時間ディメンションのメンバーを列挙する場合に絶対順序番号を構成するには、このオプションを選択します(たとえば、カレンダ年)。
-
相対 - 親レベルに対して相対的な時間ディメンションのメンバーを列挙する列がある場合に相対順序番号を構成するには、このオプションを選択します(たとえば、1年の月は1から12になります)。
- 管理ツールのビジネス・モデルとマッピング・レイヤーで、時間ディメンションを検索し、対応する論理レベルをダブルクリックします。
- 「論理レベル」ダイアログで、「順序番号」タブをクリックし、順序番号のタイプを指定して、論理レベルに追加します。
- 「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つ以上のディメンション階層に自動的にレベル数を設定できます。
レベル数は、最適な問合せ計画を決定して、システムの全体的なパフォーマンスを向上するために問合せエンジンで使用されます。
オンライン・モードでリポジトリを開き、問合せに対してビジネス・モデルが使用できることを確認する必要があります。「ビジネス・モデルとマッピング」レイヤーで、次の論理レイヤー要素のいずれかを選択してから、「レベル評価」コマンドを実行できます。
-
ビジネス・モデル。ビジネス・モデル・オブジェクトを選択すると、Oracle BI管理ツールは、ビジネス・モデル内のすべてのオブジェクトをチェックアウトしようとします。
-
ディメンション。ディメンションの整合性チェックを実行し、ディメンションが論理的に正当であるかどうかを確認します。
-
ビジネス・モデルとディメンションの組合せ。複数のディメンションと複数のビジネス・モデルを個別に選択できます。
レベル評価コマンドを実行すると、次に説明するように、レベル数に対する整合性チェックが起動されます。
-
レベル・キーが有効であるかチェックします。レベル内の列は参照整合性を持ちます。
-
親子関係をチェックします。親のレベル数が子のレベル数よりも大きい場合、エラーが返されます。
-
評価されたすべての数、およびエラーまたは整合性に関する警告がリストされた実行レポートが生成されます。
-
問合せとエラーが
DOMAIN_Home/servers/obis1/logs
にあるobis1_query.log
に記録されます。これらの情報をログ・ファイルに記録するには、ログ・レベルを4以上に設定します。Oracle Analytics Serverの管理の問題の診断および解決を参照してください。
オブジェクトをチェックインするときに、リポジトリのグローバル整合性をチェックすることができます。