ユーザーは、ファクト テーブル内のデータ項目別にメジャーをディメンションしたり、特定の販売ファクトに関連する請求書番号や発注書番号など、特定の追加情報をファクト テーブルに照会したりできるようにしたい場合があります。 このようなファクト テーブル 項目に基づいてディメンションを定義すると、ディメンションは ファクト ディメンションと呼ばれます。 ファクト ディメンションは、縮退ディメンションとも呼ばれます。 ファクト ディメンションは、特定の請求書番号に関連するすべての行など、関連するファクト テーブル行をグループ化する場合に便利です。 この情報はリレーショナル データベース内の別のディメンション テーブルに配置できますが、情報用に個別のディメンション テーブルを作成してもメリットはありません。これは、ディメンション テーブルがファクト テーブルと同じ速度で増加し、重複するデータと不要な複雑さを作成するためです。
Analysis Services 内では、クエリパフォーマンスを向上させるために MOLAP ディメンション構造のファクト ディメンション データを複製するか、またはクエリのパフォーマンスを犠牲にしてストレージ領域を節約するためにファクト ディメンションを ROLAP ディメンションとして定義するかを決定できます。 MOLAP ストレージ モードでディメンションを格納すると、すべてのディメンション メンバーは、メジャー グループのパーティションに格納されるだけでなく、高度に圧縮された MOLAP 構造の Analysis Services のインスタンスに格納されます。 ROLAP ストレージ モードでディメンションを格納する場合、ディメンション定義のみが MOLAP 構造体に格納されます。ディメンション メンバー自体は、クエリ時に基になるリレーショナル ファクト テーブルからクエリされます。 ファクト ディメンションのクエリ頻度、一般的なクエリによって返される行数、クエリのパフォーマンス、および処理コストに基づいて、適切なストレージ モードを決定します。 ディメンションを ROLAP として定義する場合、ディメンションを使用するすべてのキューブを ROLAP ストレージ モードで格納する必要はありません。 各ディメンションのストレージ モードは、個別に構成できます。
ファクト ディメンションを定義するときに、ファクト ディメンションとメジャー グループの間のリレーションシップをファクト リレーションシップとして定義できます。 ファクト リレーションシップには、次の制約が適用されます。
粒度属性はディメンションのキー列である必要があります。ディメンションとファクト テーブルのファクトの間に 1 対 1 のリレーションシップが作成されます。
ディメンションは、1 つのメジャー グループにのみファクト リレーションシップを持つことができます。
注
メジャー グループが更新されるたびに、ファクト リレーションシップが参照するファクト ディメンションも増分更新する必要があります。
詳細については、「ディメンションリレーションシップ」および「ファクトリレーションシップとファクトリレーションシッププロパティの定義」を参照してください。
このトピックのタスクでは、FactInternetSales ファクト テーブルの CustomerPONumber 列に基づいて新しいキューブ ディメンションを追加します。 次に、この新しいキューブ ディメンションと Internet Sales メジャー グループの間のリレーションシップをファクト リレーションシップとして定義します。
インターネット販売注文ファクト ディメンションの定義
ソリューション エクスプローラーで、[ ディメンション] を右クリックし、[ 新しいディメンション] をクリックします。
[ ディメンション ウィザードへようこそ ] ページで、[ 次へ] をクリックします。
[ 作成方法の選択 ] ページで、[既存の テーブルを使用 する] オプションが選択されていることを確認し、[ 次へ] をクリックします。
[ ソース情報の指定 ] ページで、 Adventure Works DW 2012 データ ソース ビューが選択されていることを確認します。
メイン テーブルの一覧で、InternetSales を選択します。
[ キー列 ] の一覧で、 SalesOrderNumber と SalesOrderLineNumber が一覧表示されていることを確認します。
[名前] 列の一覧で、[SalesOrderLineNumber] を選択します。
[次へ] をクリックします。
[ 関連テーブルの選択 ] ページで、すべてのテーブルの横にあるチェック ボックスをオフにし、[ 次へ] をクリックします。
[ ディメンション属性の選択 ] ページで、ヘッダーのチェック ボックスを 2 回クリックして、すべてのチェック ボックスをオフにします。 Sales Order Number 属性はキー属性であるため、選択されたままです。
顧客 PO 番号属性を選択し、[次へ] をクリックします。
[ ウィザードの完了 ] ページで、名前を [インターネット販売注文の詳細 ] に変更し、[ 完了 ] をクリックしてウィザードを完了します。
[ファイル] メニューの [すべてを保存] をクリックします。
インターネット販売注文詳細ディメンションのディメンション デザイナーの [属性] ウィンドウで、[販売注文番号] を選択し、[プロパティ] ウィンドウの [名前] プロパティを次の値に変更します。
Item Description.[NameColumn プロパティ] セルで、参照ボタン (...) をクリックします。[名前列] ダイアログ ボックスで、[ソース テーブル] の一覧から [製品] を選択し、[ソース] 列に [EnglishProductName] を選択し、[OK] をクリックします。
InternetSales テーブルの SalesOrderNumber 列をデータ ソース ビュー ペインから Attributes ペインにドラッグして、ディメンションに Sales Order Number 属性を追加します。
新しい販売注文番号属性の Name プロパティを
Order Numberに変更し、OrderBy プロパティを Key に変更します。[階層] ウィンドウで、
Order Numberレベルと品目説明レベルを含むインターネット販売注文ユーザー階層をその順序で作成します。[属性] ウィンドウで[Internet Sales Order Details]\(インターネット販売注文の詳細\) を選択し、[プロパティ] ウィンドウの StorageMode プロパティの値を確認します。
既定では、このディメンションは MOLAP ディメンションとして格納されます。 ストレージ モードを ROLAP に変更すると、処理時間とストレージ領域が節約されますが、クエリのパフォーマンスが低下します。 このチュートリアルでは、MOLAP をストレージ モードとして使用します。
新しく作成したディメンションをキューブ ディメンションとして Analysis Services Tutorial キューブに追加するには、 キューブ デザイナーに切り替えます。 [ キューブ構造 ] タブで、[ ディメンション ] ウィンドウを右クリックし、[ キューブ ディメンションの追加] を選択します。
[ キューブ ディメンションの追加]ダイアログ ボックスで、[ Internet Sales Order Details]\(インターネット販売注文の詳細 \) を選択し、[OK] をクリック します。
ファクト ディメンションのファクト リレーションシップの定義
Analysis Services チュートリアル キューブのキューブ デザイナーで、[ ディメンションの使用法 ] タブをクリックします。
Internet Sales Order Details キューブ ディメンションは、一意のアイコンで示されているように、ファクト リレーションシップを持つものとして自動的に構成されていることに注意してください。
Internet Sales メジャー グループと Internet Sales Order Details ディメンションの交差点にある [アイテムの説明] のセルに表示される参照ボタン (...) をクリックして、ファクトリレーションシップのプロパティを確認します。
[ リレーションシップの定義 ] ダイアログ ボックスが開きます。 どのプロパティも構成できないことに注意してください。
次の図は、[リレーションシップの定義] ダイアログ ボックスのファクト リレーションシップ のプロパティを示しています。
[キャンセル] をクリックします。
ファクト ディメンションを使ってキューブを閲覧する
[ ビルド ] メニューの [ Analysis Services チュートリアルの配置 ] をクリックして、Analysis Services のインスタンスに変更をデプロイし、データベースを処理します。
デプロイが正常に完了したら、Analysis Services チュートリアル キューブのキューブ デザイナーの [ ブラウザー ] タブをクリックし、[ 再接続 ] ボタンをクリックします。
データ ペインからすべてのメジャーと階層をクリアし、データ ウィンドウのデータ領域に インターネット Sales-Sales 量 メジャーを追加します。
メタデータ ウィンドウで、顧客を展開し、場所を展開し、顧客地域を展開し、メンバーを展開し、すべての顧客を展開し、オーストラリアを展開し、クイーンズランドを展開し、ブリスベンを展開し、4000を展開します。その後、Adam Powell を右クリックして、フィルターに追加をクリックします。
1 人の顧客に返される販売注文を制限するためにフィルター処理を行うと、ユーザーはクエリのパフォーマンスを大幅に低下させることなく、大きなファクト テーブルの基になる詳細にドリルダウンできます。
インターネット販売注文のユーザー定義階層を、インターネット販売注文の詳細ディメンションからデータ ウィンドウの行領域に追加します。
販売注文番号と Adam Powell の対応するインターネット販売額がデータ ウィンドウに表示されます。
次の図は、前の手順の結果を示しています。