次の方法で共有


レッスン 4-3 - 属性メンバーを自動的にグループ化する

適用対象: SQL Server Analysis Services Azure Analysis Services Fabric/Power BI Premium

キューブを表示するとき、通常は、ある属性階層のメンバーと別の属性階層のメンバーとを多次元化します。 たとえば、都市別、製品別、または性別ごとに顧客の売上をグループ化して表示します。 ただし、特定の種類の属性では、Microsoft SQL Server Analysis Services属性階層内のメンバーの分布に基づいて属性メンバーのグループ化を自動的に作成すると便利です。 たとえば、顧客の年収値のグループSQL Server Analysis Services作成することができます。 このようにグループ化した場合、属性階層を表示したときには、メンバーそのものではなく、グループの名前と値が表示されます。 ユーザーに提示されるレベル数が限定されるので、分析が容易になります。

DiscretizationMethod プロパティは、SQL Server Analysis Servicesがグループ化を作成するかどうかを決定し、実行されるグループ化の種類を決定します。 既定では、SQL Server Analysis Servicesはグループ化を実行しません。 自動グループ化を有効にすると、SQL Server Analysis Servicesで属性の構造に基づいて最適なグループ化方法を自動的に決定したり、次の一覧でグループ化アルゴリズムのいずれかを選択してグループ化方法を指定したりできます。

EqualAreas
SQL Server Analysis Servicesは、ディメンション メンバーの合計母集団がグループ全体に均等に分散されるようにグループ範囲を作成します。

クラスター
SQL Server Analysis Servicesは、K-Means クラスタリング法とガウス分布を使用して、入力値に対して 1 次元クラスタリングを実行してグループを作成します。 このオプションは、数値列でのみ使用できます。

グループ化方法を指定したら、 DiscretizationBucketCount プロパティでグループの数を指定します。 詳細については、「グループ属性メンバー (分離)」を参照してください。

このトピックの実習では、 Customer ディメンションの年収値、 Employees ディメンションの病気休暇時間、および Employees ディメンションの休暇時間でグループ化を行います。 次に、SQL Server Analysis Services Tutorial キューブを処理して参照し、メンバー グループの効果を表示します。 最後に、メンバー グループのプロパティを変更し、グループの種類を変更した場合の影響を確認します。

Customer ディメンションにおける属性階層メンバーのグループ化

  1. ソリューション エクスプローラーで、 [ディメンション] フォルダーの Customer をダブルクリックし、Customer ディメンションのディメンション デザイナーを開きます。

  2. [データ ソース ビュー] ペインで Customer テーブルを右クリックし、 [データの探索]をクリックします。

    YearlyIncome 列の値の範囲に注目してください。 メンバーをグループ化しない限り、これらの値は Yearly Income 属性階層のメンバーになります。

  3. [Customer テーブルの探索] タブを閉じます。

  4. [属性] ペインで、 [Yearly Income]を選択します。

  5. [プロパティ] ウィンドウで、 DiscretizationMethod プロパティの値を Automatic に変更し、 DiscretizationBucketCount プロパティの値を 5に変更します。

    次の図は、変更後の Yearly Incomeプロパティを示しています。

    年収の変更年収

Employee ディメンションにおける属性階層メンバーのグループ化

  1. Employee ディメンションのディメンション デザイナーに切り替えます。

  2. [データ ソース ビュー] ペインで Employee テーブルを右クリックし、 [データの探索]をクリックします。

    SickLeaveHours 列および VacationHours 列の値に注目してください。

  3. [Employee テーブルの探索] タブを閉じます。

  4. [属性] ペインで、 [Sick Leave Hours]を選択します。

  5. [プロパティ] ウィンドウで、 DiscretizationMethod プロパティの値を Clusters に変更し、 DiscretizationBucketCount プロパティの値を 5に変更します。

  6. [属性] ペインで、 [Vacation Hours]を選択します。

  7. [プロパティ] ウィンドウで、 DiscretizationMethod プロパティの値を Equal Areas に変更し、 DiscretizationBucketCount プロパティの値を 5に変更します。

変更した属性階層の表示

  1. SQL Server Data Toolsの [ビルド] メニューで、[Analysis Services チュートリアルの配置] をクリックします。

  2. デプロイが正常に完了したら、SQL Server Analysis Services Tutorial キューブのキューブ Designerに切り替えて、[ブラウザー] タブの [再接続] をクリックします。

  3. Excel アイコンをクリックし、 [有効化]をクリックします。

  4. Internet Sales-Sales Amount メジャーをピボットテーブル フィールド リストの値領域にドラッグします。

  5. フィールド リストで Product ディメンションを展開します。次に、 [Product Model Lines] ユーザー階層をフィールド リストの [行ラベル] 領域にドラッグします。

  6. フィールド リストで Customer ディメンションを展開し、 Demographic 表示フォルダーを展開します。次に、 Yearly Income 属性階層を [列ラベル] 領域にドラッグします。

    Yearly Income 属性階層のメンバーが 6 つのバケットにグループ化されました。この中には、年収が不明である顧客への売上のバケットも含まれています。 すべてのバケットが表示されるわけではありません。

  7. 列領域から Yearly Income 属性階層を削除し、 [値] 領域から Internet Sales-Sales Amount メジャーを削除します。

  8. Reseller Sales-Sales Amount メジャーをデータ領域に追加します。

  9. フィールド リストで Employee ディメンションを展開し、 Organizationを展開します。次に、 [Sick Leave Hours][列ラベル]にドラッグします。

    2 つのグループのうちの 1 つは、すべて従業員によって売り上げられた売上データです 病欠時間が 32 ~ 42 時間の従業員は、病欠時間が 20 ~ 31 時間の従業員よりも大幅に売り上げていることもわかります。

    次の図は、従業員の病欠時間別の売上ディメンションを示します。

    従業員の病欠時間別の売上

  10. データ ペインの列領域から Sick Leave Hours 属性階層を削除します。

  11. Vacation Hoursデータ ペインの列領域に追加します。

    EqualAreas グループ化方法に基づいて、2 つのグループが表示されます。 他の 3 つのグループはデータ値がないため、表示されません。

グループ化のプロパティの変更と、その影響の確認

  1. Employee ディメンションのディメンション デザイナーに切り替え、 [属性] ペインで [Vacation Hours] を選択します。

  2. [プロパティ] ウィンドウで、 DiscretizationBucketCount プロパティの値を 10に変更します。

  3. SQL Server Data Toolsの [ビルド] メニューで、[Analysis Services チュートリアルの配置] をクリックします。

  4. デプロイが正常に完了したら、SQL Server Analysis Services Tutorial キューブのキューブ Designerに切り替えます。

  5. [ブラウザー] タブで [再接続] をクリックし、Excel アイコンをクリックします。グループ化の方法を変更した場合の影響を確認できるように、次のようにピボットテーブルを再構築します。

    1. Reseller Sales-Sales Amount を [値] にドラッグする

    2. Vacation Hours (Employees Organization フォルダー内) を [列] にドラッグする

    3. Product Model Lines を [行] にドラッグする

    Vacation Hours 属性メンバーのグループが 3 つあります。各メンバーに製品の売上の値が含まれています (他の 7 つのグループには、売上データのあるメンバーが存在しません)。

このレッスンの次の作業

属性階層の非表示化と無効化

参照

属性メンバーのグループ化 (分離)