名前付きセットの定義
名前付きセットとは、ディメンション メンバーのセットを返す多次元式 (MDX) です。 名前付きセットを定義し、キューブ定義の一部として保存できます。さらに、名前付きセットをクライアント アプリケーションで作成することもできます。 名前付きセットは、キューブ データ、算術演算子、数値、関数を組み合わせることによって作成します。 名前付きセットは、クライアント アプリケーションの MDX クエリの中で使用できます。また、サブキューブのセットを定義するときも使用できます。 サブキューブは、クロス結合によるセットのコレクションであり、後続のステートメントに対して、キューブ空間を定義されたサブスペースに制限します。 制限されたキューブ領域の定義は MDX スクリプティングの基本概念です。
名前付きセットを使用すると、MDX クエリを単純化することができ、よく使用する複雑なセット式に対して便利な別名を使用できます。 たとえば、従業員が最も多い Reseller ディメンションのメンバーを含む Large Resellers 名前付きセットを定義できます。 エンド ユーザーはクエリの中でこの Large Resellers 名前付きセットを使用できます。また、サブキューブ内のセットを定義するために名前付きセットを使用することもできます。 名前付きセットの定義はキューブに格納されますが、その値はメモリにしか存在しません。 名前付きセットを作成するには、キューブ デザイナーの [計算] タブで [新しい名前付きセット] コマンドを使用します。 詳細については、「 計算」、「 名前付きセットの作成」を参照してください。
このトピックの作業では、Core Products と Large Resellers という 2 つの名前付きセットを定義します。
Core Products 名前付きセットの定義
Analysis Services チュートリアル キューブのキューブ Designerの [計算] タブに切り替え、ツール バーの [フォーム ビュー] をクリックします。
[スクリプト オーガナイザー] ペインの [Total Sales Ratio to All Products] をクリックして、 [計算] タブのツール バーの [新しい名前付きセット] をクリックします。
[計算] タブで新しい計算を定義する場合、計算は [スクリプト オーガナイザー] ペインに表示されている順序で解決されることに注意してください。 新しい計算を作成するときにペイン内でフォーカスが置かれている位置によって、計算の実行順序が決まります。新しい計算は、フォーカスが置かれている計算の直後に定義されます。
[ 名前 ] ボックスで、新しい名前付きセットの名前を に
[Core Products]
変更します。[スクリプト オーガナイザー] ペインには、スクリプト コマンドまたは計算されるメンバーとは異なる、名前付きセットの固有のアイコンが表示されます。
[計算ツール] ウィンドウの [メタデータ] タブで、[製品]、[カテゴリ]、[展開
Members
]、[すべての製品] の順に展開します。注意
[計算ツール] ペインにメタデータが表示されない場合、ツール バーの [再接続] をクリックします。 これが機能しない場合は、キューブを処理するか、Analysis Services のインスタンスを開始する必要があります。
[Bikes] を [式] ボックスにドラッグします。
これで、Product ディメンションの Bike カテゴリに属するメンバーのセットを返すセット式を作成できました。
Large Resellers 名前付きセットの定義
[スクリプト オーガナイザー] ウィンドウを右クリック
[Core Products]
し、[新しい名前付きセット] をクリックします。[ 名前 ] ボックスで、この名前付きセットの名前を に
[Large Resellers]
変更します。[ 式 ] ボックスに「」と入力します
Exists()
。Exists 関数を使用して、Number of Employees 属性階層内の従業員数が多数であるメンバーのセットと交差する、Reseller Name 属性階層のメンバーのセットを返すようにします。
[計算ツール] ペインの [メタデータ] タブで、 Reseller ディメンション、 Reseller Name 属性階層の順に展開します。
Reseller Name レベルを Exists セット式のかっこ内にドラッグします。
このセットのすべてのメンバーを返すには、Members 関数を使用します。 詳細については、「 メンバー (セット) (MDX)」を参照してください。
セット式の部分に続けて、ピリオドを入力して、Members 関数を追加します。 式は以下のようになります。
Exists([Reseller].[Reseller Name].[Reseller Name].Members)
Exists セット式の最初のセットを定義したら、最大の従業員数を含む Reseller ディメンションのメンバーのセットである 2 番目のセットを追加する準備ができました。
[計算ツール] ウィンドウの [メタデータ] タブで、[リセラー] ディメンションの [従業員数] を展開し、[] を展開
Members
して、[すべてのリセラー] を展開します。この属性階層のメンバーはグループ化されていません。
Reseller ディメンションのディメンション デザイナーを開いて、 [属性] ペインの [Number of Employees] をクリックします。
プロパティ ウィンドウで、 プロパティを
DiscretizationMethod
Automatic に変更し、 プロパティをDiscretizationBucketCount
に5
変更します。 詳細については、「 Group Attribute Members (Discretization)」を参照してください。SQL Server Data Tools (SSDT) の [ビルド] メニューで、[Analysis Services チュートリアルのデプロイ] をクリックします。
デプロイが正常に完了したら、[Analysis Services チュートリアル] キューブの [キューブ Designer] に切り替え、[計算] タブのツール バーの [再接続] をクリックします。
[計算ツール] ウィンドウの [メタデータ] タブで、[リセラー] ディメンションの [従業員数] を展開し、[] を展開
Members
して、[すべてのリセラー] を展開します。この属性階層のメンバーには、0 から 4 までの番号が付いた 5 つのグループが含まれるようになりました。 グループの番号は、グループ上にポインターを合わせると表示されるヒントで確認できます。
2 -17
の範囲では、ヒントに[Reseller].[Number of Employees].&[0]
が含まれている必要があります。DiscretizationBucketCount プロパティが に設定され、DiscretizationMethod プロパティが Automatic に
5
設定されているため、この属性階層のメンバーはグループ化 されます。[式] ボックスで、Exists セット式内の Members 関数の後ろ、右かっこの直前にコンマを追加します。次に、 [メタデータ] ペインから [83 - 100] をドラッグしてコンマの後に置きます。
これで、Exists セット式は完成です。この式は、Large Resellers 名前付きセットが軸に設定された場合に、これらの指定された 2 つのセット、つまり全再販業者のセットと 83 から 100 人の従業員を持つ再販業者のセットで交差するメンバーのセットを返します。
次の図は、名前付きセット の [計算式 ] ペインを
[Large Resellers]
示しています。[
[計算] タブのツール バーで [スクリプト ビュー]をクリックし、計算スクリプトに追加した 2 つの名前付きセットを確認します。
計算スクリプトの最初の CREATE SET コマンドの直前に新しい行を追加して、その行に以下のテキストを独自の行として追加します。
/* named sets */
これで 2 つの名前付きセットが定義され、それらは [スクリプト オーガナイザー] ペインに表示されます。 これで、これらの名前付きセットをデプロイし、Analysis Services チュートリアル キューブでこれらのメジャーを参照する準備ができました。
新しい名前付きセットを使用したキューブの表示
SQL Server Data Toolsの [ビルド] メニューの [Analysis Services チュートリアルの配置] をクリックします。
配置が正常に完了したら、 [ブラウザー] タブをクリックして、 [再接続]をクリックします。
データ ペインのグリッドをクリアします。
Reseller Sales-Sales Amount メジャーをデータ領域に追加します。
次の図のように、Product ディメンションを展開し、Category と Subcategory を行領域に追加します。
[メタデータ] ペインの Product ディメンションで、 Core Products をフィルター領域にドラッグします。
キューブで表示されるのは Category 属性の Bike メンバーと、 Bike サブカテゴリのメンバーだけになります。 これは、サブキューブを定義するために Core Products 名前付きセットが使用されているためです。 次の図のように、このサブキューブは、サブキューブ内の Product ディメンション内の Category 属性のメンバーを、 Core Product 名前付きセットのメンバーに限定します。
[メタデータ] ペインで Resellerを展開し、フィルター領域に Large Resellers を追加します。
データ ペインの Reseller Sales Amount メジャーには、自転車の大規模な再販業者の売上高だけが表示されるようになります。 また、次の図のように、フィルター ペインには、この特定のサブキューブを定義するために使用される 2 つの名前付きセットが表示されています。