Analysis Services のパーソナル化拡張機能

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

SQL Server Analysis Services のパーソナル化拡張機能は、プラグイン アーキテクチャを実装するという概念の基盤です。 プラグイン アーキテクチャでは、新しいキューブ オブジェクトや機能を動的に開発し、他の開発者と簡単に共有することができます。 そのため、Analysis Services のパーソナル化拡張機能によって、次のことを実現できる機能が提供されます。

  • 動的な設計と配置 Analysis Services パーソナル化拡張機能を設計して展開するとすぐに、ユーザーは次のユーザーセッションの開始時にオブジェクトと機能にアクセスできます。

  • インターフェイスの独立 Analysis Services パーソナル化拡張機能の作成に使用するインターフェイスに関係なく、ユーザーは任意のインターフェイスを使用してオブジェクトや機能にアクセスできます。

  • セッションコンテキスト Analysis Services パーソナル化拡張機能は、既存のインフラストラクチャ内の永続的なオブジェクトではなく、キューブを再処理する必要はありません。 この機能は、ユーザーがデータベースに接続したときにそのユーザー用に公開および作成され、そのユーザー セッションの間だけ使用できます。

  • 迅速な配布 この拡張機能を検索する場所や方法を詳細に説明する必要なく、個人用設定拡張を他のソフトウェア開発者と共有 Analysis Services ます。

Analysis Services パーソナル化拡張機能には多くの用途があります。 たとえば、会社の売上にさまざまな通貨が使用されているとします。 この場合、キューブにアクセスしている人物の現地通貨で連結売上を返す計算されるメンバーを作成します。 このメンバーをパーソナル化拡張機能として作成します。 その後、この計算されるメンバーをユーザー グループと共有します。 共有すると、ユーザーはサーバーに接続するとすぐに計算されるメンバーにアクセスできるようになります。 ユーザーは、計算されるメンバーの作成に使用されたインターフェイスと同じインターフェイスを使用していなくてもアクセスできます。

Analysis Services パーソナル化拡張機能は、既存のマネージアセンブリアーキテクチャに対する単純で洗練された変更であり、Analysis Services Microsoft.analysisservices.sharepoint.integration.dll オブジェクトモデル、多次元式 (MDX) 構文、およびスキーマ行セット全体で公開されます。

論理アーキテクチャ

Analysis Services パーソナル化拡張機能のアーキテクチャは、マネージアセンブリアーキテクチャと、次の4つの基本的な要素に基づいています。

[PlugInAttribute] カスタム属性
サービスを開始すると、Analysis Services 必要なアセンブリが読み込まれ、Microsoft.analysisservices.sharepoint.integration.dll カスタム属性を持つクラスが決定されます。

注意

.NET Framework は、コードを記述し、実行時の動作に影響を与える手段として、カスタム属性を定義します。 詳細については、MSDN の .NET Framework 開発者ガイドの「属性の概要」を参照してください。

Microsoft.analysisservices.sharepoint.integration.dll カスタム属性を持つすべてのクラスに対して、Analysis Services は既定のコンストラクターを呼び出します。 起動時にすべてのコンストラクターを呼び出すと、新しいオブジェクトの作成元となる、ユーザー操作に依存しない共通の場所が提供されます。

クラスコンストラクターは、パーソナル化拡張機能の作成と管理に関する情報の小さなキャッシュを構築するだけでなく、通常は Microsoft.analysisservices.sharepoint.integration.dll イベントと Microsoft.analysisservices.sharepoint.integration.dll イベントをサブスクライブします。このような場合は、 これらのイベントをサブスクライブしないと、共通言語ランタイム (CLR) のガベージ コレクターによって、誤ってクラスにクリーンアップのマークが付けられる可能性があります。

セッション コンテキスト
パーソナル化拡張機能に基づくオブジェクトの場合、Analysis Services はクライアントセッション中に実行環境を作成し、この環境でこれらのオブジェクトの大部分を動的に構築します。 他の CLR アセンブリと同様に、この実行環境からも他の関数やストアド プロシージャにアクセスできます。 ユーザーセッションが終了すると、Analysis Services は動的に作成されたオブジェクトを削除し、実行環境を閉じます。

イベント
オブジェクトの作成は、キューブ内のセッションイベント ( OpenedCubeOpenedCube-closingcu)によってトリガーされます。

クライアントとサーバー間の通信は、特定のイベントを介して行われます。 このイベントによって、クライアントのオブジェクトが作成される状況がクライアントで認識されるようになります。 クライアントの環境は、セッション イベントとキューブ イベントという 2 つのイベント セットを使用して動的に作成されます。

セッション イベントは、サーバー オブジェクトに関連付けられます。 クライアントがサーバーにログオンすると、Analysis Services によってセッションが作成され、Microsoft.analysisservices.sharepoint.integration.dll イベントがトリガーされます。 クライアントがサーバー上でセッションを終了すると、Analysis Services によって Microsoft.analysisservices.sharepoint.integration.dll イベントがトリガーされます。

キューブ イベントは、接続オブジェクトに関連付けられます。 キューブに接続すると、Microsoft.analysisservices.sharepoint.integration.dll イベントがトリガーされますが、 キューブを閉じるか、別のキューブに変更することによって、キューブへの接続を閉じると、Microsoft.analysisservices.sharepoint.integration.dll イベントがトリガーされます。

トレーサビリティとエラー処理
すべてのアクティビティは、SQL Server Profiler を使用してトレースできます。 未処理のエラーは、Windows イベント ログにレポートされます。

すべてのオブジェクトの作成および管理はこのアーキテクチャに依存せず、オブジェクトの開発者が責任を負います。

インフラストラクチャの基盤

Analysis Services パーソナル化拡張機能は、既存のコンポーネントに基づいています。 次に、パーソナル化拡張機能を実現する強化や改善の概要を示します。

アセンブリ

カスタム属性 Microsoft.analysisservices.sharepoint.integration.dll をカスタムアセンブリに追加して、Analysis Services パーソナル化拡張機能のクラスを識別できます。

AdomdServer オブジェクト モデルへの変更

Microsoft.analysisservices.sharepoint.integration.dll オブジェクトモデルの次のオブジェクトが、モデルに対して強化または追加されています。

新しい AdomdConnection クラス

Microsoft.analysisservices.sharepoint.integration.dll クラスは新しく追加され、プロパティとイベントの両方を介していくつかのパーソナル化拡張機能を公開します。

Properties

  • Microsoft.analysisservices.sharepoint.integration.dll は、現在の接続のセッション Id を表す読み取り専用の文字列値を指定します。 SessionID です。

  • Microsoft.analysisservices.sharepoint.integration.dll は、現在のセッションに関連付けられているクライアントカルチャへの読み取り専用の参照です。

  • Microsoft.analysisservices.sharepoint.integration.dll は、現在のユーザーを表す id インターフェイスへの読み取り専用の参照ではありません。

イベント

  • Microsoft.analysisservices.sharepoint.integration.dll が開かれています。

  • Microsoft.analysisservices.sharepoint.integration.dll が失われています。

Context クラスの新しいプロパティ

Microsoft.analysisservices.sharepoint.integration.dll クラスには、次の2つの新しいプロパティがあります。

  • Microsoft.analysisservices.sharepoint.integration.dll は、新しいサーバーオブジェクトへの読み取り専用の参照である、サーバーです。

  • Microsoft.analysisservices.sharepoint.integration.dll は、新しい Microsoft.analysisservices.sharepoint.integration.dll オブジェクトへの読み取り専用の参照である.... CurrentConnection オブジェクトを参照します。

新しい Server クラス

Microsoft.analysisservices.sharepoint.integration.dll は、クラスのプロパティとイベントの両方を行います。

Properties

  • Microsoft.AnalysisServices.AdomdServer.Server.Name は、サーバー名を表す読み取り専用の文字列値です。

  • Microsoft.analysisservices.sharepoint.integration.dll。サーバーに関連付けられているグローバルカルチャへの読み取り専用の参照です。

イベント

  • Microsoft.analysisservices.sharepoint.integration.dll が開かれました。

  • Microsoft.analysisservices.sharepoint.integration.dll を終了しています。

AdomdCommand クラス

Microsoft.analysisservices.sharepoint.integration.dll クラスでは、次の MDX コマンドがサポートされるようになりました。

MDX の拡張と強化

CREATE MEMBER コマンドは、 caption プロパティ、 display_folder プロパティ、および associated_measure_group プロパティを使用して強化されています。

UPDATE MEMBER コマンドが追加され、更新が必要になり計算の解決時の優先順位が失われることになる場合のメンバーの再作成が不要になりました。 更新では、計算されるメンバーのスコープを変更したり、計算されるメンバーを別の親に移動したり、別の veveorderを定義したりすることはできません。

CREATE SET コマンドは、 caption プロパティ、 display_folder プロパティ、および新しい STATIC | を使用して強化されています。DYNAMIC キーワード。 Static は、set が作成時にのみ評価されることを意味します。 動的 とは、セットがクエリで使用されるたびに、セットが評価されることを意味します。 キーワードが省略されている場合、既定値は STATIC です。

CREATE KPI コマンドと DROP KPI コマンドが MDX 構文に追加されました。 KPI は、任意の MDX スクリプトから動的に作成できます。

スキーマ行セットの拡張

On MDSCHEMA_MEMBERS scope 列が追加されます。 スコープの値は MDMEMBER_SCOPE_GLOBAL=1 と MDMEMBER_SCOPE_SESSION=2 です。

このMDSCHEMA_SETS set_evaluation_context 列が追加されます。 セットの評価コンテキストの値は MDSET_RESOLUTION_STATIC = 1 と MDSET_RESOLUTION_DYNAMIC = 2 です。

MDSCHEMA_KPIS に scope 列が追加されました。 スコープの値は MDKPI_SCOPE_GLOBAL=1 と MDKPI_SCOPE_SESSION=2 です。