次の方法で共有


属性メンバーを自動的にグループ化する

キューブを参照するときは、通常、ある属性階層のメンバーを別の属性階層のメンバーごとにディメンション化します。 たとえば、市区町村別、購入した製品別、性別別に顧客の売上をグループ化できます。 ただし、特定の種類の属性では、Microsoft Analysis Services で属性階層内のメンバーの分布に基づいて属性メンバーのグループを自動的に作成すると便利です。 たとえば、Analysis Services に顧客の年収値のグループを作成させることができます。 これを行うと、属性階層を参照するユーザーには、メンバー自体ではなく、グループの名前と値が表示されます。 これにより、ユーザーに表示されるレベルの数が制限され、分析に役立つ可能性があります。

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

EqualAreas Analysis Services では、ディメンション メンバーの総人口がグループ間で均等に分散されるように、グループ範囲が作成されます。

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

グループ化メソッドを指定した後、 DiscretizationBucketCount プロパティを使用してグループの数を指定する必要があります。 詳細については、「グループ属性メンバー (分離)」を参照してください。

このトピックのタスクでは、 顧客 ディメンションの年収値に対して、さまざまな種類のグループ化を有効にします。 従業員 ディメンションの従業員病欠時間数。および 従業員 ディメンションの従業員の休暇時間の数。 次に、Analysis Services チュートリアル キューブを処理して参照し、メンバー グループの効果を表示します。 最後に、メンバー グループのプロパティを変更して、グループ化の種類の変更の効果を確認します。

Customer ディメンションでの属性階層メンバーのグループ化

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

  2. [ データ ソース ビュー ] ウィンドウで、[ 顧客 ] テーブルを右クリックし、[ データの探索] をクリックします。

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

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

  4. [属性] ウィンドウ 、[ 年収] を選択します。

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

    次の図は、 年収の変更されたプロパティを示しています。

    年収の変更されたプロパティ

Employee ディメンションでの属性階層メンバーのグループ化

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

  2. [ データ ソース ビュー ] ウィンドウで、[ 従業員 ] テーブルを右クリックし、[ データの探索] をクリックします。

    [SickLeaveHours] 列と [VacationHours] 列の値に注目してください。

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

  4. [属性] ウィンドウ 、[ 病欠時間] を選択します。

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

  6. [属性] ウィンドウ 、[ 休暇時間] を選択します。

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

変更された属性階層の参照

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

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

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

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

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

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

    Yearly Income 属性階層のメンバーは、年収が不明な顧客に販売するためのバケットを含む 6 つのバケットにグループ化されるようになりました。 すべてのバケットが表示されるわけではありません。

  7. [列] 領域から [年収] 属性階層を削除し、[] 領域から [インターネット Sales-Sales 金額] メジャーを削除します。

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

  9. フィールド リストで、[ 従業員 ] ディメンションを展開し、[ 組織] を展開してから、[ 病欠時間][列ラベル] にドラッグします。

    すべての売上は、2 つのグループのいずれかに含まれる従業員によって行われていることに注意してください。 また、病欠が 32 ~ 42 時間の従業員は、病欠時間が 20 ~ 31 時間の従業員よりも大幅に多くの売上を上げたことに注意してください。

    次の図は、従業員の病欠時間別の売上を示しています。

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

  10. データペインの列領域から病欠時間属性階層を削除します。

  11. [データ] ウィンドウの列領域に休暇時間を追加します。

    等しい領域のグループ化方法に基づいて、2 つのグループが表示されます。 データ値が含まれていないため、他の3つのグループは非表示になっています。

グループ化プロパティの変更と変更の効果の確認

  1. 従業員ディメンションのディメンション デザイナーに切り替え、[属性] ウィンドウで [休暇時間] を選択します。

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

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

  4. デプロイが正常に完了したら、Analysis Services チュートリアル キューブのキューブ デザイナーに戻ります。

  5. [ブラウザー] タブで [再接続] をクリックし、Excel アイコンをクリックし、ピボットテーブルを再構築して、グループ化方法に対する変更の効果を表示できるようにします。

    1. 値フィールドに Reseller Sales-Sales Amount をドラッグする

    2. 休暇時間 ([従業員組織] フォルダー内) を列にドラッグする

    3. 製品モデルの線を行にドラッグする

    製品の売上値を持つ 休暇時間 属性のメンバーの 3 つのグループがあることに注意してください。 (他の 7 つのグループには、売上データのないメンバーが含まれています)。

このレッスンの次の作業

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

こちらもご覧ください

Group 属性メンバー (離散化)