メジャー グループでのディメンション粒度の定義
ファクト データは、利用目的ごとに異なる粒度でディメンションを作成しなければならない場合があります。 たとえば、販売店やインターネットでの売上データを日ごとに記録する一方で、販売量は月ごとまたは四半期ごとに記録することが考えられます。 このようなシナリオでは、ファクト テーブルごとに異なる詳細度を、時間のディメンションに設定します。 この異なる粒度を持つ時間ディメンションとして新しいデータベース ディメンションを定義することもできますが、Analysis Services では簡単な方法があります。
Analysis Services の既定では、メジャー グループ内でディメンションが使用される場合、そのディメンション内のデータのグレインはディメンションのキー属性に基づいています。 たとえば、あるメジャー グループに時間のディメンションが存在し、その時間ディメンションの既定の詳細度が日単位である場合は、メジャー グループ内のそのディメンションの既定の詳細度が日単位になります。 このチュートリアルで使用する Internet Sales (インターネット売上) や Reseller Sales (販売店売上) メジャー グループなどのように、既定の詳細度が適切である場合は数多くあります。 しかし、販売量や予算などのメジャー グループに存在するディメンションには、月単位、または四半期単位の詳細度がより適切です。
キューブ ディメンションに既定値以外の詳細度を指定するには、具体的なメジャー グループ内で使用するキューブ ディメンションの "粒度" 属性を変更します。この操作は、キューブ デザイナーの [ディメンションの使用法] タブで行います。 指定のメジャー グループのディメンションの詳細度を、そのディメンションのキー属性以外の属性に変更する場合は、メジャー グループ内の他のすべての属性を、新しい "粒度" 属性に関連付ける必要があります (間接的な関連付けも有効です)。 関連付けを行うには、"粒度" 属性として指定した属性と、その他のすべての属性との間に、属性リレーションシップを指定します。 この場合、属性リレーションシップを移動するのではなく、追加の属性リレーションシップを定義します。 "粒度" 属性として指定した属性は、メジャー グループ内のディメンションの残りの属性のキー属性になります。 属性リレーションシップを適切に指定しないと、このトピックのタスクに示されているように、Analysis Services は値を正しく集計できません。
詳細については、「 ディメンション リレーションシップ」および「 ファクト リレーションシップとファクト リレーションシップのプロパティの定義」を参照してください。
このトピックの実習では、Sales Quotas メジャー グループを追加し、このメジャー グループの Date ディメンションの粒度を月単位 (Month) に設定します。 次に、月属性と他のディメンション属性の間に属性リレーションシップを定義して、Analysis Services が値を正しく集計できるようにします。
テーブルの追加と Sales Quotas メジャー グループの定義
Adventure Works DW 2012 データ ソース ビューに切り替えます。
[ダイアグラム オーガナイザー] ウィンドウの任意の場所を右クリックし、[新しいダイアグラム] をクリックし、ダイアグラム
Sales Quotas
に という名前を付けます。[テーブル] ペインから [ダイアグラム] ペインに Employee、Sales Territory、および
Date
テーブルをドラッグします。[ダイアグラム] ペイン内を右クリックし、 [テーブルの追加と削除] をクリックして、 FactSalesQuota テーブルを [ダイアグラム]ペインに追加します。
Employee テーブルを介して、 SalesTerritory テーブルが FactSalesQuota テーブルに関連付けられます。
FactSalesQuota テーブルの列を確認し、このテーブル内のデータを調べます。
このテーブルのデータの詳細度が四半期単位になっていることがわかります。FactSalesQuota の最も低い詳細レベルが四半期単位ということになります。
[データ ソース ビュー] Designerで、FactSalesQuota テーブルの FriendlyName プロパティを に
SalesQuotas
変更します。Analysis Services チュートリアル キューブに切り替えて、[ キューブ構造 ] タブをクリックします。
[メジャー] ウィンドウの任意の場所を右クリックし、[新しいメジャー グループ] をクリックし、[新しいメジャー グループ] ダイアログ ボックスをクリック
SalesQuotas
して、[OK] をクリックします。メジャー グループが
Sales Quotas
[ メジャー ] ペインに表示されます。 [ ディメンション ] ウィンドウで、データベース ディメンションに基づいて新しいDate
キューブ ディメンションも定義されていることにDate
注意してください。 Sales Quotas メジャー グループの基になる FactSalesQuota ファクト テーブルの DateKey 列に関連する既存の時間関連キューブ ディメンションが Analysis Services で認識されないため、新しい時間関連キューブ ディメンションが定義されます。 時間キューブ ディメンションの設定は、このトピックの別の実習で変更します。メジャー グループを展開します
Sales Quotas
。[メジャー] ペインで、 Sales Amount Quotaをクリックします。次に、[プロパティ] ウィンドウで、 FormatString プロパティの値を Currency に設定します。
Sales Quotas Count メジャーを選択し、プロパティ ウィンドウの FormatString プロパティの値として「」と入力
#,#
します。メジャー グループから 予定表四半期 メジャーを
Sales Quotas
削除します。Analysis Services は、Calendar Quarter メジャーの基になる列を、メジャーを含む列として検出しました。 しかし、このトピックの後の操作で Sales Quotas メジャー グループを Date ディメンションにリンクさせるときは、検出された列および CalendarYear 列の値を手動で割り当てます。
[ メジャー ] ウィンドウで、メジャー グループを
Sales Quotas
右クリックし、[ 新しいメジャー] をクリックします。[新しいメジャー] ダイアログ ボックスが開き、メジャーの使用法が [合計]である場合に選択できる列が表示されます。
[新しいメジャー] ダイアログ ボックスの [使用状況] ボックスの一覧で [個別のカウント] を選択し、[ソース テーブル] ボックスの一覧で選択されていることを
SalesQuotas
確認し、[ソース] 列の一覧で [EmployeeKey] を選択し、[OK] をクリックします。Sales Quotas 1という名前の新しいメジャー グループに、メジャーが作成されます。 SQL Serverの個別のカウント メジャーは、処理パフォーマンスを最大化するために、独自のメジャー グループに作成されます。
Employee Key Distinct Count メジャーの Name プロパティの値を に
Sales Person Count
変更し、FormatString プロパティの値として を入力#,#
します。
Sales Quota メジャー グループのメジャーの日付順での表示
[ビルド] メニューの [Analysis Services Tutorial の配置]をクリックします。
デプロイが正常に完了したら、Analysis Services チュートリアル キューブのキューブ Designerの [ブラウザー] タブをクリックし、[再接続] ボタンをクリックします。
Excel ショートカットをクリックし、 [有効化]をクリックします。
ピボットテーブル フィールド リストでメジャー グループを
Sales Quotas
展開し、 Sales Amount Quota メジャーを [値] 領域にドラッグします。Sales Territory ディメンションを展開し、 Sales Territories ユーザー定義階層を行ラベルにドラッグします。
次の図に示すように、Sales Territory キューブ ディメンションは、直接的にも間接的にも Fact Sales Quota テーブルには関連付けられていません。
このトピックの次の一連の手順では、Sales Territory キューブ ディメンションと Fact Sales Quota テーブルの間に参照ディメンションのリレーションシップを定義します。
Sales Territories ユーザー階層を行ラベル領域から列ラベル領域に移動します。
ピボットテーブル フィールド リストで Sales Territories ユーザー定義階層を選択し、右側の下矢印をクリックします。
フィルターで [すべて選択] チェック ボックスをクリックしてすべての選択を解除してから、 North Americaだけを選択します。
北米
ピボットテーブル フィールド リストで、 を展開します
Date
。Date.Fiscal Date ユーザー階層を行ラベルにドラッグします。
ピボットテーブルで、行ラベルの横にある下矢印をクリックします。 FY 2008以外のすべての年をオフにします。
2007 年 7 月、2007 年 8 月、2007 年 9 月の月レベルのメンバーではなく、月レベルの 2007 年 7 月のメンバーのみが表示され、すべての 31 日ではなく、レベルの
Date
2007 年 7 月 1 日のメンバーのみが表示されることに注意してください。 この動作は、ファクト テーブル内のデータのグレインが四半期レベルにあり、ディメンションのDate
グレインが日単位のレベルであるために発生します。 この変更は、このトピックの別の実習で行います。また、月単位および日単位の Sales Amount Quota の値が四半期のそれと同じである $13,733,000.00 になっています。 これは、Sales Quotas メジャー グループのデータの最低詳細レベルが四半期単位になっているためです。 この変更は、レッスン 6 で行います。
次の図は、 Sales Amount Quotaの値を示しています。
Sales Quotas メジャー グループにおけるディメンションの使用法の定義
Employee ディメンションのディメンション デザイナーを開き、 [データ ソース ビュー] ペインで [SalesTerritoryKey] を右クリックし、 [列から新しい属性を作成]をクリックします。
[属性] ペインで、 [SalesTerritoryKey]をクリックします。次に、[プロパティ] ウィンドウで AttributeHierarchyVisible プロパティを False に設定します。さらに、 AttributeHierarchyOptimizedState プロパティを NotOptimizedに設定し、 AttributeHierarchyOrdered プロパティを Falseに設定します。
この属性は、 Sales Territory ディメンションを参照ディメンション
Sales Quotas
として Sales Quotas 1 メジャー グループおよび Sales Quotas 1 メジャー グループにリンクするために必要です。Analysis Services チュートリアル キューブのキューブ Designerで、[ディメンションの使用状況] タブをクリックし、および Sales Quotas 1 メジャー グループ内
Sales Quotas
のディメンションの使用状況を確認します。Employee ディメンションと
Date
キューブ ディメンションが、通常のリレーションシップを通じて Sales Quotas と Sales Quotas 1 メジャー グループにリンクされていることに注意してください。 また、 Sales Territory キューブ ディメンションはどちらのメジャー グループにもリンクしていません。Sales Territory ディメンションとメジャー グループの交差部分にあるセルを
Sales Quotas
クリックし、参照ボタン (...) をクリックします。[リレーションシップの定義] ダイアログ ボックスが開きます。[リレーションシップの種類の選択] ボックスの一覧から [参照対象]をクリックします。
[中間ディメンション] ボックスの一覧から [Employee]を選択します。
[参照ディメンションの属性] ボックスの一覧から [Sales Territory Region]を選択します。
[中間ディメンションの属性] ボックスの一覧から [Sales Territory Key]を選択します (Sales Territory Region 属性のキー列は、SalesTerritoryKey 列です)。
[具体化する] チェック ボックスがオンになっていることを確認します。
[OK] をクリックします。
Sales Territory ディメンションと Sales Quotas 1 メジャー グループの積集合にあるセルをクリックし、参照ボタン (...) をクリックします。[リレーションシップの定義] ダイアログ ボックスが開きます。
[リレーションシップの種類の選択] ボックスの一覧から [参照対象]をクリックします。
[中間ディメンション] ボックスの一覧から [Employee]を選択します。
[参照ディメンションの属性] ボックスの一覧から [Sales Territory Region]を選択します。
[中間ディメンションの属性] ボックスの一覧から [Sales Territory Key]を選択します (Sales Territory Region 属性のキー列は、SalesTerritoryKey 列です)。
[具体化する] チェック ボックスがオンになっていることを確認します。
[OK] をクリックします。
キューブ ディメンションを
Date
削除します。4 つの時間関連のキューブ ディメンションを持つ代わりに、メジャー グループの Order Date キューブ ディメンションを
Sales Quotas
、販売クォータのディメンションの対象となる日付として使用します。 また、このキューブ ディメンションはキューブ内のプライマリ日付ディメンションにもなります。[ディメンション] ボックス の 一覧で、 Order Date キューブ ディメンションの名前を に
Date
変更します。Order Date キューブ ディメンションの名前を
Date
変更すると、ユーザーはこのキューブのプライマリ日付ディメンションとしての役割を理解しやすくなります。メジャー グループとディメンションの積集合
Sales Quotas
にあるセルの参照ボタン (...) をDate
クリックします。[リレーションシップの定義] ダイアログ ボックスで、 [リレーションシップの種類の選択] ボックスの一覧から [標準] を選択します。
[粒度属性] ボックスの一覧から [Calendar Quarter]を選択します。
非キー属性を粒度属性として選択したため、警告が表示されます。他のすべての属性をメンバー プロパティとして指定し、直接または間接的に粒度属性に関連付ける必要があります。
[リレーションシップの定義] ダイアログ ボックスの [リレーションシップ] 領域で、Date キューブ ディメンションの基となるテーブルから CalendarYear および CalendarQuarter ディメンション列を、Sales Quota メジャー グループの基となるテーブルの CalendarYear および CalendarQuarter 列にそれぞれリンクし、 [OK]をクリックします。
注意
Calendar Quarter が、Sales Quotas メジャー グループの Date キューブ ディメンションの粒度属性として定義されます。しかし、Date 属性は依然として Internet Sales および Reseller Sales メジャー グループの粒度属性です。
前の 4 つの手順を Sales Quotas 1 メジャー グループに対して繰り返します。
Calendar Quarter 属性およびその他の属性間の属性リレーションシップの Date ディメンションへの定義
ディメンションのディメンション Designerに
Date
切り替えて、[属性リレーションシップ] タブをクリックします。Calendar Year は Calendar Semester 属性を使用してカレンダー 四半期にリンクされていますが、会計カレンダー属性は相互にのみリンクされます。これらは Calendar Quarter 属性にリンクされていないため、メジャー グループで
Sales Quotas
正しく集計されません。ダイアグラムで、 [Calendar Quarter] 属性を右クリックし、 [新しい属性リレーションシップ]をクリックします。
[属性リレーションシップの作成] ダイアログ ボックスで、 [基になる属性] に [Calendar Quarter]を指定します。 [関連属性] を [Fiscal Quarter]に設定します。
[OK] をクリックします。
ディメンションに 1 つ以上の冗長属性リレーションシップが
Date
含まれていることを示す警告メッセージが表示され、非キー属性が粒度属性として使用されるときにデータが集計されない可能性があります。Month Name 属性と Fiscal Quarter 属性との間の属性リレーションシップを削除します。
[ファイル] メニューの [すべてを保存] をクリックします。
Sales Quota メジャー グループのメジャーの日付順での表示
[ビルド] メニューの [Analysis Services Tutorial の配置]をクリックします。
デプロイが正常に完了したら、Analysis Services チュートリアル キューブのキューブ Designerの [ブラウザー] タブをクリックし、[再接続] をクリックします。
Excel ショートカットをクリックし、 [有効化]をクリックします。
Sales Amount Quota メジャーを値領域にドラッグします。
Sales Territories ユーザー階層を列ラベルにドラッグし、 North Americaでフィルター処理します。
Date.FiscalDate ユーザー階層を行ラベルにドラッグし、ピボットテーブルの [行ラベル] の横の下矢印をクリックします。次に、 [FY 2008]以外のすべてのチェック ボックスをオフにして、2008 年度 (会計年度) だけを表示します。
[OK] をクリックします。
FY 2008、 H1 FY 2008、 Q1 FY 2008の順に展開します。
次の図は、Sales Quota メジャー グループが正しくディメンション化された Analysis Services チュートリアル キューブのピボットテーブルを示しています。
会計四半期レベルの各メンバーが、四半期レベルと同じ値になっています。 たとえば、 Q1 FY 2008 では、 Q1 FY 2008 の分の $9,180,000.00 が、その各メンバーの値にもなっています。 このように表示されるのは、ファクト テーブルの詳細度が四半期単位であり、同時に Date ディメンションの詳細レベルも四半期単位であるためです。 レッスン 6 では、四半期ごとの販売量を各月に均等に割り振る方法について学習します。
次のレッスン
参照
ディメンション リレーションシップ
ファクト リレーションシップとファクト リレーションシップのプロパティの定義
データ ソース ビュー デザイナーでのダイアグラムの操作 (Analysis Services)