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