Analysis Services 開発に関するクライアント アーキテクチャの要件
Microsoft SQL Server Analysis Services では、シン クライアント アーキテクチャがサポートされています。 Analysis Services 計算エンジンは完全にサーバー ベースであるため、すべてのクエリはサーバー上で解決されます。 つまり、クエリごとにクライアントとサーバー間での単一ラウンド トリップが必要です。この結果、クエリの複雑さが増すにつれてパフォーマンスが変化します。
Analysis Services のネイティブ プロトコルは、XML for Analysis (XML/A) です。 Analysis Services にはクライアント アプリケーション用のデータ アクセス インターフェイスがいくつか用意されていますが、これらのコンポーネントはすべて、分析用 XML を使用して Analysis Services のインスタンスと通信します。
Analysis Services には、さまざまなプログラミング言語をサポートするために、いくつかの異なるプロバイダーが用意されています。 プロバイダーは、インターネット インフォメーション サービス (IIS) を介して、TCP/IP 経由または HTTP 経由で SOAP パケットで分析用 XML を送受信することで、Analysis Services サーバーと通信します。 HTTP 接続では、データ ポンプと呼ばれる IIS によってインスタンス化された COM オブジェクトが使用されます。これは、Analysis Services データの導管として機能します。 データ ポンプでは、HTTP ストリーム内に含まれる、基になるデータはまったく検証されません。また、基になるデータ構造はデータ ライブラリ内にあるコードではまったく使用できません。
Win32 クライアント アプリケーションは、OLE DB for OLAP インターフェイスまたは Microsoft Visual Basic® などのコンポーネント オブジェクト モデル (COM) オートメーション言語の Microsoft® ActiveX® Data Objects (ADO) オブジェクト モデルを使用して Analysis Services サーバーに接続できます。 .NET 言語でコーディングされたアプリケーションは、ADOMD.NET を使用して Analysis Services サーバーに接続できます。
既存のアプリケーションは、Analysis Services プロバイダーのいずれかを使用するだけで、変更なしで Analysis Services と通信できます。
プログラミング言語 | データ アクセス インターフェイス |
---|---|
C++ | OLE DB for OLAP (OLE DB for OLAP) |
Visual Basic 6 | ADO MD (ADO MD) |
.NET 言語 | ADO MD.NET |
SOAP をサポートするすべての言語 | XML for Analysis (XML for Analysis) |
Analysis Services には、小規模組織と大規模組織の両方によるデプロイ用に完全にスケーラブルな中間層を備えた Web アーキテクチャがあります。 Analysis Services では、Web サービスに対する広範な中間層のサポートが提供されます。 ASP アプリケーションは OLE DB for OLAP および ADO MD によって、ASP.NET アプリケーションは ADOMD.NET によってサポートされています。 次の図のように、中間層は、多数の同時ユーザーに対応できるスケーラブルな層です。
クライアントと中間層の両方のアプリケーションは、プロバイダーを使用せずに Analysis Services と直接通信できます。 クライアントおよび中間層アプリケーションによっては、TCP/IP、HTTP、または HTTPS を使用して SOAP パケットで XML for Analysis を送信する場合もあります。 また、クライアントは SOAP をサポートする任意の言語を使用して記述されている場合もあります。 この場合、通信の管理には、TCP/IP を使用したサーバーへの直接接続が記述されている場合でも、HTTP を介したインターネット インフォメーション サービス (IIS) を使用する方法が最も管理が簡単です。 これは、Analysis Services の最も薄いクライアント ソリューションです。
テーブル モードまたは SharePoint モードの Analysis Services
SQL Server 2014 では、表形式データベースおよび SharePoint サイトに発行された PowerPivot ブックの xVelocity メモリ内分析エンジン (VertiPaq) モードでサーバーを起動できます。
PowerPivot for Excel と SQL Server Data Tools (SSDT) は、SharePoint モードまたは表形式モードを使用するメモリ内データベースの作成とクエリでサポートされている唯一のクライアント環境です。 Excel ツールと PowerPivot ツールを使用して作成した埋め込み PowerPivot データベースは Excel ブックに含まれており、Excel .xlsx ファイルの一部として保存されます。
ただし、PowerPivot ブックでは、キューブ データをブックにインポートする場合、従来のキューブに格納されているデータを使用できます。 SharePoint サイトに発行されている場合は、別の PowerPivot ブックからデータをインポートすることもできます。
Note
PowerPivot ブックのデータ ソースとしてキューブを使用する場合、キューブから取得するデータは MDX クエリとして定義されます。ただし、データはフラット化されたスナップショットとしてインポートされます。 キューブのデータは、対話的に操作したり、更新したりすることはできません。
PowerPivot Client インターフェイス
PowerPivot は、Analysis Services の確立されたインターフェイスと言語 (AMO と ADOMD.NET、MDX と XMLA) を使用して、ブック内の xVelocity メモリ内分析エンジン (VertiPaq) ストレージ エンジンと対話します。 アドイン内では、メジャーは、Excel、Data Analysis Expressions (DAX) と同様の数式言語を使用して定義されます。 DAX の式は、インプロセス サーバーに送信される XMLA メッセージ内に埋め込まれます。
プロバイダー
PowerPivot と Excel の間の通信では、MSOLAP OLEDB プロバイダー (バージョン 11.0) が使用されます。 MSOLAP プロバイダー内には、4 つの異なるモジュールまたはトランスポートがあり、クライアントとサーバー間のメッセージの送信に使用できます。
Tcp/ip 通常のクライアントとサーバーの接続に使用されます。
HTTP SSAS データ ポンプ サービスを介した HTTP 接続、または SharePoint PowerPivot Web サービス (WS) コンポーネントの呼び出しによって使用されます。
Inproc インプロセス エンジンへの接続に使用されます。
チャネル SharePoint ファーム内の PowerPivot System Service との通信用に予約されています。