メンバー グループは、連続するディメンション メンバーのシステム生成コレクションです。 Microsoft SQL Server Analysis Services では、属性のメンバーは、分離と呼ばれるプロセスを通じて、複数のメンバー グループにグループ化できます。 階層内のレベルにはメンバー グループまたはメンバーが含まれますが、両方は含まれません。 ビジネス ユーザーがメンバー グループを含むレベルを参照すると、メンバー グループの名前とセル値が表示されます。 メンバー グループをサポートするために Analysis Services によって生成されるメンバーは、グループ 化メンバーと呼ばれ、通常のメンバーのようになります。
属性の DiscretizationMethod プロパティは、メンバーのグループ化方法を制御します。
DiscretizationMethod 設定 |
説明 |
|---|---|
None |
メンバーを表示します。 |
Automatic |
データを最もよく表すメソッド ( EqualAreas メソッドまたは Clusters メソッド) を選択します。 |
EqualAreas |
属性内のメンバーを、同じ数のメンバーを含むグループに分割しようとします。 |
Clusters |
トレーニング データをサンプリングし、多数のランダム ポイントに初期化し、Expectation-Maximization (EM) クラスタリング アルゴリズムを複数回繰り返して実行することで、属性内のメンバーをグループに分割しようとします。 この方法は、任意の分布曲線で動作しますが、処理時間の点ではコストが高いため便利です。 |
属性の DiscretizationNumber プロパティは、表示するグループの数を指定します。 プロパティが既定値の 0 に設定されている場合、Analysis Services は、 DiscretizationMethod プロパティの設定に応じて、データのサンプリングまたは読み取りによってグループの数を決定します。
メンバー グループ内のメンバーの並べ替え順序は、属性の OrderBy プロパティを使用して制御されます。 この並べ替え順序に基づいて、メンバー グループ内のメンバーは連続して並べ替えられます。
メンバー グループの一般的な用途は、メンバーが少ないレベルから多くのメンバーを含むレベルにドリルダウンすることです。 ユーザーがレベル間でドリルダウンできるようにするには、多数のメンバーを含むレベルの属性の DiscretizationMethod プロパティを、 None から前の表で説明した分離メソッドのいずれかに変更します。 たとえば、Client ディメンションには、500,000 人のメンバーを持つクライアント名属性階層が含まれています。 この属性クライアント グループの名前を変更し、 DiscretizationMethod プロパティを Automatic に設定して、属性階層メンバー レベルでメンバー グループを表示できます。
各グループ内の個々のクライアントにドリルダウンするには、同じテーブル列にバインドされた別のクライアント名属性階層を作成します。 次に、2 つの属性に基づいて新しいユーザー階層を作成します。 最上位レベルはクライアント グループ属性に基づき、下位レベルはクライアント名属性に基づいています。
IsAggregatableプロパティは両方の属性においてTrueとなります。 その後、ユーザーは階層の (すべて) レベルを展開してグループ メンバーを表示し、グループ メンバーを展開して階層のリーフ メンバーを表示できます。 グループ レベルまたはクライアント レベルを非表示にするには、 AttributeHierarchyVisible プロパティを対応する属性で False に設定できます。
名前付けテンプレート
メンバー グループ名は、メンバー グループの作成時に自動的に生成されます。 名前付けテンプレートを指定しない限り、既定の名前付けテンプレートが使用されます。 この名前付け方法は、属性の NameColumn プロパティの Format オプションで名前付けテンプレートを指定することで変更できます。 属性のNameColumn プロパティに使用された列バインドのTranslations コレクションで指定されたすべての言語について、異なる名前付けテンプレートを再定義できます。
Format設定では、次の文字列式を使用して名前付けテンプレートを定義します。
<Naming template> ::= <First definition> [;<Intermediate definition>;<Last definition>]
<First definition> ::= <Name expression>
<Intermediate definition> ::= <Name expression>
<Last definition> ::= <Name expression>
<First definition> パラメーターは、分離メソッドによって生成された最初のメンバー グループまたは唯一のメンバー グループにのみ適用されます。 省略可能なパラメーター <Intermediate definition> と <Last definition> が指定されていない場合、 <First definition> パラメーターは、その属性に対して生成されるすべてのメジャー グループに使用されます。
<Last definition> パラメーターは、分離メソッドによって生成された最後のメンバー グループにのみ適用されます。
<Intermediate bucket name> パラメーターは、分離メソッドによって生成された最初または最後のメンバー グループ以外のすべてのメンバー グループに適用されます。 2 つ以下のメンバー グループが生成される場合、このパラメーターは無視されます。
<Bucket name> パラメーターは、メンバー グループの名前の一部としてメンバーまたはメンバー グループ情報を表す一連の変数を組み込むことができる文字列式です。
| 変数 | 説明 |
|---|---|
| %{最初のバケツメンバー} | 現在のメンバー グループに含める最初のメンバーのメンバー名。 |
| %{最後のバケットメンバー} | 現在のメンバー グループに含める最後のメンバーのメンバー名。 |
| %{前のバケットの最後のメンバー} | 前のメンバー グループに割り当てられた最後のメンバーのメンバー名。 |
| %{Next bucket first member} | 次のメンバー グループに割り当てられる最初のメンバーのメンバー名。 |
| %{バケット最小} | 現在のメンバー グループに割り当てられるメンバーの最小値。 |
| %{Bucket Max} | 現在のメンバー グループに割り当てられるメンバーの最大値。 |
| %{以前のバケット最大値} | 前のメンバー グループに割り当てられるメンバーの最大値。 |
| %{次のバケットの最小値} | 次のメンバー グループに割り当てられるメンバーの最小値。 |
既定の名前付けテンプレートは "%{First bucket member} - %{Last bucket member}"され、以前のバージョンの Analysis Services との互換性が提供されます。
注
名前付けテンプレートにセミコロン (リテラル文字として;)を含めるには、パーセント (%) 文字でプレフィックスを付けます。
例
次の文字列式を使用すると、Adventure Works DW 多次元 2012 サンプル Analysis Services データベースの Customer ディメンションの Yearly Income 属性を分類できます。Yearly Income 属性ではメンバー グループが使用されます。
"%{Next Bucket Min} より小さい、%{First bucket member} と %{Last bucket member} の間、%{Previous Bucket Max} より大きい"
既存のメンバー グループへの新しいメンバーの追加
ディメンションに新しいメンバーが追加されると、メンバーの値を現在のメンバー グループ レイアウトと比較することで、適切なメンバー グループに割り当てられます。
前のメンバー グループの最後のメンバーと次のメンバー グループの最初のメンバーの間にメンバーが挿入された場合、新しいメンバーは前のメンバー グループの最後のメンバーになります。
分離された属性を使用してディメンションを更新する
ディメンションを処理すると、分離された属性は完全更新 (ProcessFull) でのみ再再取得されます。 属性を再再認識するには、ディメンションの完全な更新を実行する必要があります。 分離された属性のディメンション テーブルが更新され、増分更新 (ProcessAdd) でディメンションを処理する場合、分離された属性は再認識されません。 新しいバケットの名前と子は変わりません。 ディメンションの処理に関する詳細は、Analysis Services オブジェクトの処理を参照してください。
使用制限
階層の最上位または最下位レベルにメンバー グループを作成することはできません。 ただし、これを行う必要がある場合は、メンバー グループを作成するレベルが上位レベルまたは下位レベルでなくなったように、レベルを追加できます。 追加したレベルを非表示にするには、その
VisibleプロパティをFalseに設定します。階層の 2 つの連続したレベルでメンバー グループを作成することはできません。
メンバー グループは、ROLAP ストレージ モードを使用するディメンションではサポートされていません。
メンバー グループを含むディメンションのディメンション テーブルが更新され、その後ディメンションが完全に処理されると、メンバー グループの新しいセットが生成されます。 新しいメンバー グループの名前と子は、古いメンバー グループとは異なる場合があります。