データの粒度の操作
このトピックでは、論理表ソースのデータの粒度を理解および定義する際に役立つ情報を提供します。
データの粒度について
データの粒度は、論理表ソースの詳細レベルを示します。問合せが発行されると、Oracle Analytics問合せエンジンは、論理表ソースのデータの粒度を使用して、要求されたデータに必要な詳細レベルを検索します。
論理表の論理ディメンションおよび論理階層によって、論理表ソースに割り当てることができる粒度レベルが決まります。たとえば、年、月、週、日、時間などです。
ファクト表の論理表ソースごとにデータの粒度を指定する必要があります。この粒度は、ファクト表内に格納されているデータの粒度のレベルを定義します。また、ファクト表に結合される論理表ごとに粒度を定義する必要もあります。Oracle Analytics問合せエンジンでは、論理表ソース・レベルが指定されていない場合、最も詳細なレベルが使用されます。表ソースごとにデータの粒度を割り当てることが、データ・モデリングのベスト・プラクティスです。
集計表について
集計表は、ディメンション属性のセットに対して集計される、事前に計算されたメジャーからの結果を格納する物理表です。
集計ファクト表とディメンション表を結合する必要があります。「集計表の結合について」を参照してください。
集計表の各列には、特定のレベルのセットのデータが含まれます。たとえば、月間売上表には、各月の各店舗での各製品の収益の合計があらかじめ計算されて含まれます。
集計ファクト表の論理表ソースを作成するには、対応する論理ディメンション表ソースを同じ集計レベルに作成する必要があります。
集計の各レベルに1つ以上の論理ディメンション表ソースが必要になります。各レベルにソースがすでに存在する場合は、追加のソースを作成する必要はありません。
たとえば、製品ごと、店舗ごと、月ごとの売上の事前計算された合計を格納する月次販売ファクト表があるとします。次の3つのディメンション・ソースが必要です(この例で参照される各論理ディメンション表に1つずつ):
-
次のコンテンツの指定のいずれかを満たす製品論理表のソース:
-
論理レベルによる: ProductDimension.ProductLevel
-
列による: Product.Product_Name
-
-
次のコンテンツの指定のいずれかを満たす店舗論理表のソース:
-
論理レベルによる: StoreDimension.StoreLevel
-
列による: Store.Store_Name
-
-
次のコンテンツの指定のいずれかを満たす時間論理表のソース:
-
論理レベルによる: TimeDimension.MonthLevel
-
列による: Time.Month
-
問合せの実行時、Oracle Analytics問合せエンジンは最初に、問合せに回答するのに十分な詳細を持つソースがどれであるかを判断します。Oracle Analytics問合せエンジンはこれらのソースから、問合せに回答するために最も集計の度合いが高いソースを選択します(それが最も高速であると想定されるため)。最も集計の度合いの高いソースは、要素の乗数が最も小さいソースです。
各レベルの要素数の指定方法を学習するには、「論理ディメンション表での論理レベルの作成」を参照してください。
集計表の結合について
集計ファクト表と集計ディメンション表の間の物理結合を作成する必要があります。
結合によってOracle Analytics問合せエンジンに、物理集計ディメンション表に結合され、その値によって制約される物理集計ファクト表に対する問合せの送信場所が伝えられます。
結合を検証するには、ファクト論理表の論理ダイアグラムを開きます。このダイアグラムには、ファクト論理表に直接結合されているディメンション論理表のみが表示されます。論理ファクト・ソースとディメンション・ソース内で同じ物理表が使用されている場合、ダイアグラムにディメンション表は表示されません。
この図は、「Fact - Assess」ファクト表の論理ダイアグラムを示しています。
この表は、「Fact - Assess」ファクト表に直接結合されている各ディメンション表の論理レベルのリストです。
ディメンション | 論理レベル |
---|---|
Account Geography |
Postal Code Detail |
Person Geography |
Postal Code Detail |
Time |
Day Detail |
Account Organization |
Account Detail |
Opportunity |
Opty Detail |
Primary Visibility Organization |
Detail |
Employee |
Detail |
Assessment |
Detail |
Contact (W_PERSON_D) |
Detail |
FINS Time |
Day |
Positions |
Details |
論理表ソースの親子設定について
論理表が、リレーショナル表に基づく親子階層を持つディメンションの一部である場合、その論理表には、物理ソースと、親子階層で必要とされる親子関係表のソースの両方が含まれます。
親子関係表は、親子階層のメンバー間の関係を明示的に定義します。
親子関係表ソースの詳細は、論理表の「階層」タブで確認できます。
-
関係表 - ソースのベースとなっている親子関係表の名前です。
-
メンバー・キー - 親子関係表内でメンバーを特定する列の名前です。
-
親キー - 親子関係表内でメンバーの祖先を特定する列の名前です。
-
関係性 - 親子関係表内で、メンバーから祖先までの親子階層のレベル数を指定する列の名前です。
-
リーフ・ノード識別子 - 親子関係表内で、メンバーがリーフ・メンバーであるかどうか(1=はい、0=いいえ)を示す列の名前です。
親子階層のディメンションの作成を参照してください。
論理表ソースのデータの粒度の定義
ディメンション表の粒度と、ディメンション表に結合されたファクト表のディメンションおよびレベル情報を定義します。Oracle Analytics問合せエンジンは、この情報を使用して、要求されたデータに必要な詳細レベルを検索します。
- ホーム・ページで、「ナビゲータ」、「セマンティック・モデル」の順にクリックします。
- 「セマンティック・モデル」ページで、セマンティック・モデルをクリックして開きます。
- 「論理レイヤー」をクリックします
- 「論理レイヤー」ペインで、データの粒度を定義する表ソースを含むディメンション表を参照してダブルクリックします。
- 表のタブで、「ソース」をクリックします。
- 表ソース・リストで、データの粒度を定義する論理表ソースをクリックし、「詳細ビュー」をクリックしてプロパティ・ペインを開きます。
- 「データの粒度」にスクロールし、「定義者」フィールドをクリックしてレベルを選択します。必要に応じて、他のディメンション表についてもこのステップを繰り返します。
- 「論理レイヤー」ペインで、データの粒度を定義したディメンション表に結合されているファクト表を参照してダブルクリックします。
- 表のタブで、「ソース」タブをクリックします。
- 論理表ソースのリスト表で、データの粒度を定義する論理表ソースをクリックし、「詳細ビュー」をクリックしてプロパティ・ペインを開きます。
- ペインの「データの粒度」セクションまでスクロールし、「レベルの追加」をクリックします。
- 新しいレベルの「ディメンション」フィールドで、ドロップダウン・ボタンをクリックしてディメンション表を選択します。「レベル」フィールドで、ドロップダウン・ボタンをクリックして粒度レベルを選択します。ファクト表に結合された他のディメンション表について、このステップを繰り返します。
- 「保存」をクリックします。