次の方法で共有


メジャー グループでのディメンション粒度の定義

ファクト データは、利用目的ごとに異なる粒度でディメンションを作成しなければならない場合があります。たとえば、販売店やインターネットでの売上データを日ごとに記録する一方で、販売量は月ごとまたは四半期ごとに記録することが考えられます。このようなシナリオでは、ファクト テーブルごとに異なる詳細度を、時間のディメンションに設定します。新しいデータベース ディメンションを定義する場合、このようにさまざまに異なる詳細度を設定して時間のディメンションを定義することもできますが、Analysis Services を使用すると、さらに容易にディメンションを定義できます。

メジャー グループでディメンションを使用する場合、Analysis Services の既定では、ディメンションのキー属性に基づいてディメンションの詳細度が決定されます。たとえば、あるメジャー グループに時間のディメンションが存在し、その時間ディメンションの既定の詳細度が日単位である場合は、メジャー グループ内のそのディメンションの既定の詳細度が日単位になります。このチュートリアルで使用する Internet Sales (インターネット売上)Reseller Sales (販売店売上) メジャー グループなどのように、既定の詳細度が適切である場合は数多くあります。しかし、販売量や予算などのメジャー グループに存在するディメンションには、月単位、または四半期単位の詳細度がより適切です。

キューブ ディメンションに既定値以外の詳細度を指定するには、具体的なメジャー グループ内で使用するキューブ ディメンションの "粒度" 属性を変更します。この操作は、キューブ デザイナの [ディメンションの使用法] タブで行います。指定のメジャー グループのディメンションの詳細度を、そのディメンションのキー属性以外の属性に変更する場合は、メジャー グループ内の他のすべての属性を、新しい "粒度" 属性に関連付ける必要があります (間接的な関連付けも有効です)。関連付けを行うには、"粒度" 属性として指定した属性と、その他のすべての属性との間に、属性リレーションシップを指定します。この場合、属性リレーションシップを移動するのではなく、追加の属性リレーションシップを定義します。"粒度" 属性として指定した属性は、メジャー グループ内のディメンションの残りの属性のキー属性になります。属性リレーションシップを適切に指定しないと、Analysis Services は値を正しく集計できません。これについては、このトピックの実習で確認します。

詳細については、「ディメンション リレーションシップ」および「標準リレーションシップおよび標準リレーションシップ プロパティの定義」を参照してください。

このトピックの実習では、Sales Quotas メジャー グループを追加し、このメジャー グループの Date ディメンションの粒度を月単位 (Month) に設定します。次に、Analysis Services が値を適切に集計できるよう、Month 属性とその他の属性との間に属性リレーションシップを定義します。

テーブルの追加と Sales Quotas メジャー グループの定義

テーブルを追加し、Sales Quotas メジャー グループを定義するには

  1. Adventure Works DW データ ソース ビューのデータ ソース ビュー デザイナに切り替えます。

  2. [ダイアグラム オーガナイザ] ペイン内を右クリックし、[新しいダイアグラム] をクリックします。新しいダイアグラムに「Sales Quotas」という名前を付けます。詳細については、「データ ソース ビューでのダイアグラムの操作 (Analysis Services)」を参照してください。

  3. [テーブル] ペインの EmployeeSales Territory、および Date テーブルを、ダイアグラム ペインにドラッグします。

  4. ダイアグラム ペイン内を右クリックし、[テーブルの追加と削除] をクリックします。FactSalesQuota テーブルをダイアグラム ペインに追加します。

    Employee テーブルを介して、SalesTerritory テーブルが FactSalesQuota テーブルに関連付けられます。

  5. FactSalesQuota テーブルの列を確認し、このテーブル内のデータを調べます。

    このテーブルのデータの詳細度が四半期単位になっていることがわかります。FactSalesQuota の最も低い詳細レベルが四半期単位ということになります。

  6. データ ソース ビュー デザイナで、FactSalesQuota テーブルの FriendlyName プロパティを「SalesQuotas」に変更します。

  7. Analysis Services Tutorial キューブのキューブ デザイナに切り替え、[キューブ構造] タブをクリックします。

  8. [メジャー] ペイン内を右クリックし、[新しいメジャー グループ] をクリックします。次に、[新しいメジャー グループ] ダイアログ ボックスで [SalesQuotas] をクリックし、[OK] をクリックします。

    [メジャー] ペインに Sales Quotas メジャー グループが表示されます。[ディメンション] ペインを見ると、Date データベース ディメンションに基づく新しい Date キューブ ディメンションが定義されていることがわかります。新しい時間キューブ ディメンションが定義されてしまうのは、Sales Quotas メジャー グループの基となる FactSalesQuota ファクト テーブルの DateKey 列に関連付けられている時間キューブ ディメンションがどのディメンションなのかを、Analysis Services に指定していないためです。時間キューブ ディメンションの設定は、このトピックの別の実習で変更します。

  9. Sales Quotas メジャー グループを展開します。

  10. [メジャー] ペインで、Sales Amount Quota をクリックします。次に、[プロパティ] ウィンドウで、FormatString プロパティの値を Currency に設定します。

  11. [Sales Quotas Count] メジャーを選択します。次に、[プロパティ] ウィンドウで、FormatString プロパティの値として「#,#」と入力します。

  12. Sales Quotas メジャー グループから Calendar Quarter メジャーを削除します。

    Calendar Quarter メジャーの基となる列 (この列には他のメジャーも含まれている) は、Analysis Services によって自動的に検出されました。しかし、このトピックの後の操作で Sales Quotas メジャー グループを Date ディメンションにリンクさせるときは、検出された列および CalendarYear 列の値を手動で割り当てます。

  13. [メジャー] ペインで Sales Quotas メジャー グループを右クリックし、[新しいメジャー] をクリックします。詳細については、「メジャーの定義」を参照してください。

    [新しいメジャー] ダイアログ ボックスが開き、メジャーの使用法が [合計] である場合に選択できる列が表示されます。

  14. [新しいメジャー] ダイアログ ボックスで、[使用法] ボックスの一覧から [個別のカウント] をクリックします。[基になるテーブル] ボックスの一覧で SalesQuotas が選択されていることを確認します。[基になる列] ボックスの一覧で EmployeeKey をクリックし、[OK] をクリックします。

    Sales Quotas 1 という名前の新しいメジャー グループに、メジャーが作成されます。処理速度を最大限に向上させるため、SQL Server の "個別のカウント" メジャーは専用のメジャー グループに作成されます。

  15. Employee Key Distinct Count メジャーの Name プロパティの値を Sales Person Count に変更します。次に、FormatString プロパティの値として「#,#」と入力します。

Sales Quota メジャー グループのメジャーの日付順での表示

Sales Quota メジャー グループのメジャーを日付順に表示するには

  1. [ビルド] メニューの [Analysis Services Tutorial の配置] をクリックします。

  2. 配置が正常に完了したら、Analysis Services Tutorial キューブのキューブ デザイナで [ブラウザ] タブをクリックし、[再接続] ボタンをクリックします。

  3. データ ペインからすべての階層とメジャーを消去し、次にフィルタ ペインからディメンション メンバを消去します。

  4. メタデータ ペインで、[Sales Quotas] メジャー グループを展開し、このデータ領域に Sales Amount Quota メジャーを追加します。

  5. Sales Territory ディメンションの Sales Territory ユーザー定義階層を列領域に追加します。

    次の図に示すように、Sales Territory キューブ ディメンションは、直接的にも間接的にも Fact Sales Quota テーブルには関連付けられていません。

    Sales Territory キューブ ディメンション

    このトピックの次の実習では、Sales Territory キューブ ディメンションと Fact Sales Quota テーブルの間に参照ディメンションのリレーションシップを定義します。

  6. データ ペインで、Sales Territory Group の隣の下矢印をクリックし、North America を除くすべてのチェック ボックスをオフにします。Sales Territory Group に表示されるディメンション メンバが、North America のメンバに変わります。

  7. メタデータ ペインで、[Date] を展開します。

  8. Date.Fiscal Date ユーザー階層を行領域に追加します。次に、データ ペインで Fiscal Year の隣の下矢印をクリックし、FY 2004 を除くすべてのチェック ボックスをオフにします。これにより、2004 年度 (会計年度) のメンバのみが表示されます。

  9. メタデータ ペインで、FY 2004H1 FY 2004Q1 FY 2004July 2003 の順に展開します。

    Month レベルの July, 2003August, 2003September, 2003 メンバの代わりに、Month レベルの July 2003 メンバのみが表示されます。また、Date レベルでは、31 日全部のメンバではなく July 1, 2003 メンバのみが表示されます。このように表示されるのは、ファクト テーブルの詳細度が四半期単位であり、Date ディメンションの詳細レベルが日単位であるためです。この変更は、このトピックの別の実習で行います。

    また、月単位および日単位の Sales Amount Quota の値が四半期のそれと同じである $13,733,000.00 になっています。これは、Sales Quotas メジャー グループのデータの最低詳細レベルが四半期単位になっているためです。この変更は、レッスン 6 で行います。

    次の図は、Sales Amount Quota の値を示しています。

    Sales Amount Quota の値

Sales Quotas メジャー グループにおけるディメンションの使用法の定義

Sales Quotas メジャー グループにディメンションの使用法を定義するには

  1. Employee ディメンションのディメンション デザイナを開き、[データ ソース ビュー] ペインで [SalesTerritoryKey] を右クリックし、[列から新しい属性を作成] をクリックします。

  2. [属性] ペインで、[SalesTerritoryKey] をクリックします。次に、[プロパティ] ウィンドウで AttributeHierarchyVisible プロパティを False に設定します。さらに、AttributeHierarchyOptimizedState プロパティを NotOptimized に設定し、AttributeHierarchyOrdered プロパティを False に設定します。

    この属性は、Sales Territory ディメンションを参照元ディメンションとして Sales Quotas および Sales Quotas 1 メジャー グループにリンクさせる際に使用します。

  3. Analysis Services Tutorial キューブのキューブ デザイナで、[ディメンションの使用法] タブをクリックします。次に、Sales Quotas および Sales Quotas 1 メジャー グループでのディメンションの使用法を確認します。

    Employee および Date キューブ ディメンションは、通常のリレーションシップを介して Sales Quotas および Sales Quotas 1 メジャー グループにリンクしています。また、Sales Territory キューブ ディメンションはどちらのメジャー グループにもリンクしていません。

  4. Sales Territory ディメンションと Sales Quotas メジャー グループが交差する位置にあるセルをクリックし、参照ボタン ([...]) をクリックします。[リレーションシップの定義] ダイアログ ボックスが開きます。

  5. [リレーションシップの種類の選択] ボックスの一覧から [参照対象] をクリックします。

  6. [中間ディメンション] ボックスの一覧から [Employee] を選択します。

  7. [参照ディメンションの属性] ボックスの一覧から [Sales Territory Region] を選択します。

  8. [中間ディメンションの属性] ボックスの一覧から [Sales Territory Key] を選択します (Sales Territory Region 属性のキー列は、SalesTerritoryKey 列です)。

  9. [具体化する] チェック ボックスがオンになっていることを確認します。

  10. [OK] をクリックします。

  11. Sales Territory ディメンションと Sales Quotas 1 メジャー グループが交差する位置にあるセルをクリックし、参照ボタン ([...]) をクリックします。[リレーションシップの定義] ダイアログ ボックスが開きます。

  12. [リレーションシップの種類の選択] ボックスの一覧から [参照対象] をクリックします。

  13. [中間ディメンション] ボックスの一覧から [Employee] を選択します。

  14. [参照ディメンションの属性] ボックスの一覧から [Sales Territory Region] を選択します。

  15. [中間ディメンションの属性] ボックスの一覧から [Sales Territory Key] を選択します (Sales Territory Region 属性のキー列は、SalesTerritoryKey 列です)。

  16. [具体化する] チェック ボックスがオンになっていることを確認します。

  17. [OK] をクリックします。

  18. Date キューブ ディメンションを削除します。

    時間に関連する 4 つのキューブ ディメンションを用意する代わりに、Sales Quotas メジャー グループの Order Date キューブ ディメンションを使用します。これが、販売量に対応する日付のディメンションになります。また、このキューブ ディメンションはキューブ内のプライマリ日付ディメンションにもなります。

  19. ディメンションの一覧で、Date (Order Date) キューブの名前を「Date (Date)」に変更します。

    Order Date キューブ ディメンションの名前を Date に変更することにより、同キューブ ディメンションがこのキューブのプライマリ日付ディメンションとしての機能を持っていることを把握しやすくなります。

  20. Sales Quotas メジャー グループと Date (Date) ディメンションが交差する位置にあるセルで、参照ボタン ([...]) をクリックします。

  21. [リレーションシップの定義] ダイアログ ボックスで、[リレーションシップの種類の選択] ボックスの一覧から [標準] を選択します。

  22. [粒度属性] ボックスの一覧から [Calendar Quarter] を選択します。

    非キー属性を粒度属性として選択したため、警告が表示されます。他のすべての属性をメンバ プロパティとして指定し、直接または間接的に粒度属性に関連付ける必要があります。

  23. [リレーションシップの定義] ダイアログ ボックスの [リレーションシップ] 領域で、Date (Date) ディメンションの基となるテーブルから CalendarYear および CalendarQuarter ディメンションを、Sales Quota メジャー グループの基となるテーブルの CalendarYear および CalendarQuarter 列にそれぞれリンクし、[OK] をクリックします。

    注意注意

    Calendar Quarter が、Sales Quotas メジャー グループの Date (Date) キューブ ディメンションの粒度属性として定義されます。しかし、Date 属性は依然として Internet Sales および Reseller Sales メジャー グループの粒度属性です。

  24. 前の 4 つの手順を Sales Quotas 1 メジャー グループに対して繰り返します。

Calendar Quarter 属性およびその他の属性間の属性リレーションシップの Date ディメンションへの定義

Calendar Quarter 属性とその他の属性の間の属性リレーションシップを Date ディメンションに定義するには

  1. Date ディメンションのディメンション デザイナに切り替えて、[属性リレーションシップ] タブをクリックします。

    Calendar Year は、Calendar Semester 属性を介して Calendar Quarter にリンクされました。しかし、会計カレンダーの各属性は互いに一対一でリンクしているだけで、Calendar Quarter 属性にはリンクしていません。したがって、このままでは Sales Quotas メジャー グループにおいて正しく集計されません。

  2. ダイアグラムで、[Calendar Quarter] 属性を右クリックし、[新しい属性リレーションシップ] をクリックします。

  3. [属性リレーションシップの作成] ダイアログ ボックスで、[基になる属性][Calendar Quarter] を指定します。[関連属性][Fiscal Quarter] に設定します。

  4. [OK] をクリックします。

    Date ディメンションに、1 つまたは複数の重複する属性リレーションシップが含まれており、このことが原因で、非キー属性が粒度属性として使用されている場合にデータの集計ができない可能性があることを警告するメッセージが表示されます。

  5. Month Name 属性と Fiscal Quarter 属性との間の属性リレーションシップを削除します。

  6. [ファイル] メニューの [すべてを保存] をクリックします。

Sales Quota メジャー グループのメジャーの日付順での表示

Sales Quota メジャー グループのメジャーを日付順に表示するには

  1. [ビルド] メニューの [Analysis Services Tutorial の配置] をクリックします。

  2. 配置が正常に完了したら、Analysis Services Tutorial キューブのキューブ デザイナで [ブラウザ] タブをクリックし、[再接続] をクリックします。

    参照されているディメンションとして Sales Territory ディメンションが定義されたので、Sales Amount Quota メジャーが、Sales Territory によって正しく多次元化されました。

  3. Date.FiscalDate ユーザー階層を、Date キューブ ディメンションの行領域に追加します。次に、Fiscal Year の隣の下矢印をクリックし、FY 2004 を除くすべてのチェック ボックスをオフにします。これにより、2004 年度 (会計年度) のメンバのみが表示されます。

  4. [OK] をクリックします。

  5. FY 2004H1 FY 2004Q1 FY 2004 の順に展開します。

    Sales Quotas メジャー グループの各メジャーが適切に関連付けられています。また、会計四半期レベルの各メンバが表示され、各メンバの値は四半期レベルの値になります。このように表示されるのは、ファクト テーブルの詳細度が四半期単位であり、同時に Date ディメンションの詳細レベルも四半期単位であるためです。レッスン 6 では、四半期ごとの販売量を各月に均等に割り振る方法について学習します。

    次の図は、Sales Quotas メジャー グループが適切に関連付けられた、Analysis Services Tutorial キューブのキューブ デザイナです。

    適切にディメンションが指定された Sales Quota メジャー グループ