Analysis Services 開発に関するクライアント アーキテクチャの要件

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

Microsoft SQL Server SQL Server Analysis Services では、シン クライアント アーキテクチャがサポートされています。 SQL Server Analysis Services計算エンジンは完全にサーバー ベースであるため、すべてのクエリはサーバー上で解決されます。 つまり、クエリごとにクライアントとサーバー間での単一ラウンド トリップが必要です。この結果、クエリの複雑さが増すにつれてパフォーマンスが変化します。

SQL Server Analysis Servicesのネイティブ プロトコルは XML for Analysis (XML/A) です。 SQL Server Analysis Servicesはクライアント アプリケーション用にいくつかのデータ アクセス インターフェイスを提供しますが、これらのコンポーネントはすべて、XML for Analysis を使用して SQL Server Analysis Services のインスタンスと通信します。

さまざまなプログラミング言語をサポートするSQL Server Analysis Servicesには、いくつかの異なるプロバイダーが用意されています。 プロバイダーは、TCP/IP 経由またはインターネット インフォメーション サービス (IIS) を介して HTTP 経由で SOAP パケットで XML for Analysis を送受信することで、SQL Server Analysis Services サーバーと通信します。 HTTP 接続では、データ ポンプと呼ばれる IIS によってインスタンス化された COM オブジェクトが使用され、データSQL Server Analysis Servicesの導管として機能します。 データ ポンプでは、HTTP ストリーム内に含まれる、基になるデータはまったく検証されません。また、基になるデータ構造はデータ ライブラリ内にあるコードではまったく使用できません。

Analysis Services の論理クライアント アーキテクチャ Analysis Services

Win32 クライアント アプリケーションは、OLE DB for OLAP インターフェイスまたは Microsoft Visual Basic® などのコンポーネント オブジェクト モデル (COM) オートメーション言語の Microsoft® ActiveX® Data Objects (ADO) オブジェクト モデルを使用して、SQL Server Analysis Services サーバーに接続できます。 .NET 言語でコーディングされたアプリケーションは、ADOMD.NET を使用してSQL Server Analysis Services サーバーに接続できます。

既存のアプリケーションは、SQL Server Analysis Services プロバイダーのいずれかを使用するだけで、変更なしでSQL Server 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)

SQL Server Analysis Servicesには、小規模組織と大規模組織の両方によるデプロイ用に完全にスケーラブルな中間層を備えた Web アーキテクチャがあります。 SQL Server Analysis Servicesは、Web サービスの広範な中間層サポートを提供します。 ASP アプリケーションは OLE DB for OLAP および ADO MD によって、ASP.NET アプリケーションは ADOMD.NET によってサポートされています。 次の図のように、中間層は、多数の同時ユーザーに対応できるスケーラブルな層です。

中間層アーキテクチャの論理図 中間層アーキテクチャ

クライアントと中間層の両方のアプリケーションは、プロバイダーを使用せずにSQL Server Analysis Servicesと直接通信できます。 クライアントおよび中間層アプリケーションによっては、TCP/IP、HTTP、または HTTPS を使用して SOAP パケットで XML for Analysis を送信する場合もあります。 また、クライアントは SOAP をサポートする任意の言語を使用して記述されている場合もあります。 この場合、通信の管理には、TCP/IP を使用したサーバーへの直接接続が記述されている場合でも、HTTP を介したインターネット インフォメーション サービス (IIS) を使用する方法が最も管理が簡単です。 これは、SQL Server Analysis Servicesの最も薄いクライアント ソリューションです。

テーブル モードまたは SharePoint モードの Analysis Services

SQL Server 2017 では、表形式データベースと SharePoint サイトに発行された Power Pivot ブックの VertiPaq メモリ内分析エンジン (VertiPaq) モードでサーバーを起動できます。

Power Pivot for Excel と SQL Server Data Tools は、SharePoint モードまたは表形式モードを使用するメモリ内データベースの作成とクエリに対応している唯一のクライアント環境です。 Excel ツールと Power Pivot ツールを使用して作成した埋め込み Power Pivot データベースは Excel ブックに含まれており、Excel .xlsx ファイルの一部として保存されます。

ただし、Power Pivot ブックでは、キューブ データをブックにインポートする場合、従来のキューブに格納されているデータを使用できます。 SharePoint サイトに発行されている場合は、別の Power Pivot ブックからデータをインポートすることもできます。

注意

Power Pivot ブックのデータ ソースとしてキューブを使用する場合、キューブから取得するデータは MDX クエリとして定義されます。ただし、データはフラット化されたスナップショットとしてインポートされます。 キューブのデータは、対話的に操作したり、更新したりすることはできません。

Power Pivot クライアントのインターフェイス

Power Pivot は、Analysis Services の確立されたインターフェイスと言語 (AMO と ADOMD.NET、MDX と XMLA) を使用して、ブック内の VertiPaq インメモリ分析エンジン ストレージ エンジンと対話します。 アドイン内では、メジャーは、Excel、Data Analysis Expressions (DAX) と同様の数式言語を使用して定義されます。 DAX の式は、インプロセス サーバーに送信される XMLA メッセージ内に埋め込まれます。

プロバイダー

Power Pivot と Excel の間の通信では、MSOLAP OLEDB プロバイダー (バージョン 11.0) が使用されます。 MSOLAP プロバイダー内には、4 つの異なるモジュールまたはトランスポートがあり、クライアントとサーバー間のメッセージの送信に使用できます。

Tcp/ip 通常のクライアントとサーバーの接続に使用されます。

HTTP SSAS データ ポンプ サービスまたは SharePoint Power Pivot Web サービス (WS) コンポーネントの呼び出しによる HTTP 接続に使用されます。

Inproc インプロセス エンジンへの接続に使用されます。

チャネル SharePoint ファーム内の Power Pivot System Service との通信用に予約されています。

参照

OLAP エンジンのサーバー コンポーネント