レッスン 6-2 - 名前付きセットの定義

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

名前付きセットとは、ディメンション メンバーのセットを返す多次元式 (MDX) です。 名前付きセットを定義し、キューブ定義の一部として保存できます。さらに、名前付きセットをクライアント アプリケーションで作成することもできます。 名前付きセットは、キューブ データ、算術演算子、数値、関数を組み合わせることによって作成します。 名前付きセットは、クライアント アプリケーションの MDX クエリの中で使用できます。また、サブキューブのセットを定義するときも使用できます。 サブキューブは、クロス結合によるセットのコレクションであり、後続のステートメントに対して、キューブ空間を定義されたサブスペースに制限します。 制限されたキューブ領域の定義は MDX スクリプティングの基本概念です。

名前付きセットを使用すると、MDX クエリを単純化することができ、よく使用する複雑なセット式に対して便利な別名を使用できます。 たとえば、従業員が最も多い Reseller ディメンションのメンバーを含む Large Resellers 名前付きセットを定義できます。 エンド ユーザーはクエリの中でこの Large Resellers 名前付きセットを使用できます。また、サブキューブ内のセットを定義するために名前付きセットを使用することもできます。 名前付きセットの定義はキューブに格納されますが、その値はメモリにしか存在しません。 名前付きセットを作成するには、キューブ デザイナーの [計算] タブで [新しい名前付きセット] コマンドを使用します。 詳細については、「 計算」、「 名前付きセットの作成」を参照してください。

このトピックの作業では、Core Products と Large Resellers という 2 つの名前付きセットを定義します。

Core Products 名前付きセットの定義

  1. SQL Server Analysis Services Tutorial キューブのキューブ デザイナーの [計算] タブに切り替え、ツール バーの [フォーム ビュー] をクリックします。

  2. [スクリプト オーガナイザー] ペインの [Total Sales Ratio to All Products] をクリックして、 [計算] タブのツール バーの [新しい名前付きセット] をクリックします。

    [計算] タブで新しい計算を定義する場合、計算は [スクリプト オーガナイザー] ペインに表示されている順序で解決されることに注意してください。 新しい計算を作成するときにペイン内でフォーカスが置かれている位置によって、計算の実行順序が決まります。新しい計算は、フォーカスが置かれている計算の直後に定義されます。

  3. [名前] ボックスに、新しい名前付きセットの名前として「 [Core Products]」と入力します。

    [スクリプト オーガナイザー] ペインには、スクリプト コマンドまたは計算されるメンバーとは異なる、名前付きセットの固有のアイコンが表示されます。

  4. [計算ツール] ペインの [メタデータ] タブで、 [Product][Category][メンバー][All Products]の順に展開します。

    注意

    [計算ツール] ペインにメタデータが表示されない場合、ツール バーの [再接続] をクリックします。 これが機能しない場合は、キューブを処理するか、SQL Server Analysis Servicesのインスタンスを開始する必要があります。

  5. [Bikes][式] ボックスにドラッグします。

    これで、Product ディメンションの Bike カテゴリに属するメンバーのセットを返すセット式を作成できました。

Large Resellers 名前付きセットの定義

  1. [スクリプト オーガナイザー] ペインの [Core Products] を右クリックして、 [新しい名前付きセット]をクリックします。

  2. [名前] ボックスに、この名前付きセットの名前として「 [Large Resellers]」と入力します。

  3. [式] ボックスに「 Exists()」と入力します。

    Exists 関数を使用して、Number of Employees 属性階層内の従業員数が多数であるメンバーのセットと交差する、Reseller Name 属性階層のメンバーのセットを返すようにします。

  4. [計算ツール] ペインの [メタデータ] タブで、 Reseller ディメンション、 Reseller Name 属性階層の順に展開します。

  5. Reseller Name レベルを Exists セット式のかっこ内にドラッグします。

    このセットのすべてのメンバーを返すには、Members 関数を使用します。 詳細については、「 メンバー (セット) (MDX)」を参照してください。

  6. セット式の部分に続けて、ピリオドを入力して、Members 関数を追加します。 式は以下のようになります。

    Exists([Reseller].[Reseller Name].[Reseller Name].Members)  
    

    Exists セット式の最初のセットを定義できたので、従業員の最大数を含む Reseller ディメンションのメンバーのセットである 2 つ目のセットを追加する準備ができました。

  7. [計算ツール] ペインの [メタデータ] タブで、Reseller ディメンションの [Number of Employees] を展開して、 [メンバー][All Resellers]の順に展開します。

    この属性階層のメンバーはグループ化されていません。

  8. Reseller ディメンションのディメンション デザイナーを開いて、 [属性] ペインの [Number of Employees] をクリックします。

  9. プロパティ ウィンドウで、 DiscretizationMethod プロパティを Automaticに変更して、 DiscretizationBucketCount プロパティを「 5」に変更します。 詳細については、「 グループ属性メンバー (分離)」を参照してください。

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

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

  12. [計算ツール] ウィンドウの [メタデータ] タブで、[リセラー] ディメンションの [従業員数] を展開し、[メンバー] を展開して、[すべてのリセラー] を展開します。

    この属性階層のメンバーには、0 から 4 までの番号が付いた 5 つのグループが含まれるようになりました。 グループの番号は、グループ上にポインターを合わせると表示されるヒントで確認できます。 2 -17の範囲では、ヒントに [Reseller].[Number of Employees].&[0]が含まれている必要があります。

    この属性階層のメンバーがこのようにグループ化されるのは、DiscretizationBucketCount プロパティが 5 に設定され、DiscretizationMethod プロパティが Automaticに設定されているためです。

  13. [式] ボックスで、Exists セット式内の Members 関数の後ろ、右かっこの直前にコンマを追加します。次に、 [メタデータ] ペインから [83 - 100] をドラッグしてコンマの後に置きます。

    これで、Exists セット式は完成です。この式は、Large Resellers 名前付きセットが軸に設定された場合に、これらの指定された 2 つのセット、つまり全再販業者のセットと 83 から 100 人の従業員を持つ再販業者のセットで交差するメンバーのセットを返します。

    次の図は、 Large Resellers 名前付きセットの 計算式 ペインを示しています。

    Calculation Expressions pane for [Large Resellers]

  14. [計算] タブのツール バーで [スクリプト ビュー]をクリックし、計算スクリプトに追加した 2 つの名前付きセットを確認します。

  15. 計算スクリプトの最初の CREATE SET コマンドの直前に新しい行を追加して、その行に以下のテキストを独自の行として追加します。

    /* named sets */  
    

    これで 2 つの名前付きセットが定義され、それらは [スクリプト オーガナイザー] ペインに表示されます。 これで、これらの名前付きセットをデプロイし、SQL Server Analysis Services Tutorial キューブでこれらのメジャーを参照する準備ができました。

新しい名前付きセットを使用したキューブの表示

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

  2. 配置が正常に完了したら、 [ブラウザー] タブをクリックして、 [再接続]をクリックします。

  3. データ ペインのグリッドをクリアします。

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

  5. 次の図のように、Product ディメンションを展開し、Category と Subcategory を行領域に追加します。

    Members of the Subcategory attribute

  6. [メタデータ] ペインの Product ディメンションで、 Core Products をフィルター領域にドラッグします。

    キューブで表示されるのは Category 属性の Bike メンバーと、 Bike サブカテゴリのメンバーだけになります。 これは、サブキューブを定義するために Core Products 名前付きセットが使用されているためです。 次の図のように、このサブキューブは、サブキューブ内の Product ディメンション内の Category 属性のメンバーを、 Core Product 名前付きセットのメンバーに限定します。

    Members of the Core Product named set

  7. [メタデータ] ペインで Resellerを展開し、フィルター領域に Large Resellers を追加します。

    データ ペインの Reseller Sales Amount メジャーには、自転車の大規模な再販業者の売上高だけが表示されるようになります。 また、次の図のように、フィルター ペインには、この特定のサブキューブを定義するために使用される 2 つの名前付きセットが表示されています。

    Filter pane containing two named sets

次のレッスン

レッスン 7: 主要業績評価指標 (KPI) の定義

参照

計算
名前付きセットの作成