ディメンション階層、レベル・キーおよびコンテンツ・レベル
Oracle Analyticsでは、ディメンション階層、レベル・キーおよびコンテンツ・レベルによってナビゲーションの基礎が形成されます。このトピックでは、Oracle Analyticsの機能を強化するためにディメンション階層を設定する方法について説明します。
レベル・キーは、ディメンション階層のレベルを定義するために使用されます。また、これらのレベルは、論理表ソースのコンテンツ・レベルまたは集約レベルの設定に使用されます。Oracle Analyticsでは、コンテンツ・レベルを使用して、特定の問合せに対して最も最適化された論理表ソースにナビゲートします。
ディメンション階層は、レベルベース・メジャーを作成したり、分析のドリルを設定するためにも必要です。
ディメンション階層
レベルが1つのみの場合でも、常にディメンション階層を作成します。これは、様々な理由で実行することをお薦めします:
-
Oracle Analyticsでは、ディメンション階層を使用して、コンテンツ・レベルによって最も最適化された論理表ソースを選択します。
-
レベル間のドリルアップおよびドリルダウンには、ディメンション階層が必要です。ドリルは直感的であることがあります。たとえば、ブランドを分析する場合は、対応する統一製品コード(UPC)にドリルダウンすることがあります。その他のタイプのドリルダウンは明確ではないが、まだ有用である可能性があります。たとえば、担当者タイプから担当者名にドリルダウンできます。
-
ディメンション階層は、Oracle Analyticsが2つの結果セットを結合する場合に役立ちます。たとえば、同じレポートで2つのファクト表を結合する場合などです。
-
レベルベース・メジャーを作成するには、ディメンション階層が必要です。
-
一部の時系列計算では時間ディメンションが必要です。たとえば、計算が特定のレベル(年など)に基づいている場合などです。
-
論理表ソースのディメンション階層およびコンテンツ・レベルを定義すると、セマンティック・モデルの問題を識別するための整合性チェッカの機能が向上します。
ディメンション階層のタイプ
-
バランス型のレベルベースの階層は、Oracle Analyticsで使用される最も一般的な階層タイプです。すべてのレベルベース階層では、詳細レベルが上位レベルにロールアップされます。バランス型のレベルベース階層では、次に示すように、階層のすべてのメンバーに、すべてのレベルで祖先が存在します。
図ceal_hierarchies_1.jpgの説明 -
時間ディメンションは、特に時間ベースの階層に使用される特別なレベルベース階層です。
AGO
やTODATE
などの時系列計算を使用する場合は、時間ディメンションが必要です。時間ディメンションを定義するには、ディメンション階層のプロパティで「時間」を選択します。 -
スキップレベル階層は、階層のすべてのメンバーにすべてのレベルで祖先が存在するわけではない特別なレベルベース階層です。スキップレベル階層を定義するには、階層のプロパティで「スキップ・レベル」を選択します。
この例では、ワシントンDCが州に属していないため、州/都道府県レベルがスキップされるスキップレベル階層を示しています。
図ceal_hierarchies_3.jpgの説明 -
不規則階層または不均衡階層は、階層のすべてのレベルにすべてのデータが存在するわけではないもう1つの特別なレベルベース階層です。不規則階層を定義するには、階層のプロパティで「不規則」を選択します。
この例では、階層のWebブランチにDistributorレベルとStoreレベルがない不規則なスキップレベル階層を示しています。
図ceal_hierarchies_4.jpgの説明ここでは、階層のプロパティで「不規則」と「スキップ・レベル」の両方を選択します。
-
親子階層は、組織に関連付けられていることが多い階層のタイプです。たとえば、従業員はマネージャにロールアップされます。親子階層では、各子メンバーは単一の親メンバーにロールアップされます。最下位レベルでは、各メンバーに子メンバーはありません。最上位レベルでは、それ以上の親レベルがない単一の親があります。その中間では、各メンバーは親と子の両方になります。
親子階層は、4つの列で構成される特殊な親子関係表に基づいています:
- メンバー
- 祖先またはメンバーの祖先
- メンバーと祖先の間のレベル数
- メンバーがリーフ・メンバー、つまり最下位レベルであるかどうか
親子階層を定義するには、新しい階層を作成するときに「親子階層を持つディメンション」を選択し、「親子設定」を選択して、次に示すように親子階層を設定します。
ディメンション階層作成時のルール
-
ディメンション階層には、総計を1つのみ含めることができます。
-
ディメンション階層に複数のブランチがある場合は、通常、すべてのブランチに共通の開始ポイントと共通の終了ポイントがあります。
-
総計レベルを定義するには、そのレベルのプロパティで「総計レベル」を選択する必要があります。
この例では、「総計レベル」が選択され、「このレベルの要素数」が1に設定されています。
-
総計以外のレベルを定義するには、レベルのプロパティで「上位レベルの集計へのロールアップをサポート」を選択する必要があります。総計レベルを定義すると、Oracle Analyticsでは、階層内の他のすべてのレベルの「上位レベルの集計へのロールアップをサポート」が自動的に設定されます。
総計以外のレベルでは、「このレベルの要素数」は常に1より大きくなります。
この例は、複数のブランチが共通ポイントで開始および終了するディメンション階層を示しています。共有開始ポイントは総計レベルで、共有終了ポイントは詳細レベルです。
-
ディメンション階層を定義する場合は、常にレベル当たりの要素数を指定します。Oracle Analyticsでは、要素の数を使用して集計表およびミニ・ディメンションを識別します。この数は正確である必要はなく、概算で十分です。ナビゲーションで、論理表ソースのすべてのコンテンツ・レベルのクロス積が計算されます。これは、他の点で同等のソース間を移動するときにタイ・ブレーカとして使用されます。
-
レベル当たりの要素の数は階層構造で、数が最も少ない要素が最上位になります(総計の場合は1)。ディメンション階層の上位レベルのほうが下位レベルよりも要素数が少なくなります。親レベルの要素数が子レベルよりも多い場合、整合性チェッカによって警告されることに注意してください。
この例は、120個の要素が定義された論理レベルMonthを示しています。
-
論理表のディメンション階層を作成すると、その表のすべての列が階層の一部になります。デフォルトでは、上位レベルに明示的に関連付けられていない列は、最下位レベルまたは詳細レベルの一部と見なされます。
レベル・キー
レベル・キーを使用して、特定のレベルを識別します。
-
各レベルのプライマリ・キーは一意である必要があります。
-
レベルのプライマリ・キーとして使用される単一列が一意でない場合は、追加列と組み合せて、一意のコンポジット・レベル・キーを形成する必要があります。たとえば、月番号または月名がレベル・キーに使用される場合を考えてみます。Octoberの月番号は10ですが、月番号10と月名Octoberは毎年あるため、Octoberと10は両方とも一意ではありません。一意のレベル・キーを形成するには、月番号または月名を年と組み合せてコンポジット・レベル・キーを形成する必要があります。この例では、コンポジット・レベル・キーは月番号10と2021、または月名Octoberと2021です。
-
ディメンション階層の最下位レベルまたは詳細レベルのプライマリ・キーは、階層の基になる論理ディメンション表のプライマリ・キーと一致する必要があります。
この例は、共通のプライマリ・キーを持つ論理ディメンション表およびディメンション階層を示しています。
-
総計レベルには、レベル・キーが関連付けられていません。
-
列がプライマリ・レベル・キーまたはプライマリ・レベル・キーの一部である場合、その列をそのレベルに割り当てる必要があります。列が親レベルのレベル・キーで、子レベルのコンポジット・レベル・キーの一部である場合、その列を親レベルに割り当てます。前述の例では、月番号と月名を月レベルに割り当て、年を年レベルに割り当てる必要があります。
-
ディメンション階層が時間ディメンション用である場合、少なくとも1つのレベルに、期間のソート順序(最も古い期間から最新の期間へ)を指定する時系列キーが必要です。多くの場合、詳細レベルのプライマリ・キーは時系列キーでもあります。
この例では、同じプライマリ・キーと時系列キーを持つ時間ディメンション・レベル・キーを示しています。
コンテンツ・レベル
コンテンツ・レベルを使用して、ファクトとディメンションの両方で論理表ソースの集計レベルを定義します。
-
コンテンツ・レベルを使用すると、Oracle Analyticsは問合せに対して最も最適化された論理表ソースを選択できます。
-
コンテンツ・レベルは、整合性チェッカがセマンティック・モデル構成の問題を見つけるのに役立ち、これによりランタイム・エラーを防止できます。
-
ファクト論理表ソースのコンテンツ・レベルを指定する場合は、その論理ファクト表に結合するすべてのディメンションのコンテンツ・レベルを指定する必要があります。コンテンツ・レベルがファクト表に設定されていないディメンション表を結合し、他のディメンションのコンテンツ・レベルが存在する場合、Oracle Analyticsでは、そのディメンション表とファクト表の間の結合は実行されません。この場合、Oracle Analyticsでは、ディメンション表がファクト表に結合されていないことを想定します。コンテンツ・レベルが指定されていないがファクト・ソースへの結合を実行するディメンションが関与する問合せでは、「リクエストされた式をナビゲートできません」というエラーが返されます。