Analysis Services 開発に関するクライアント アーキテクチャの要件
適用対象:
SQL Server Analysis Services Azure Analysis Services
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が用意されています。 プロバイダーは、インターネット インフォメーション サービス (IIS) を介して、TCP/IP 経由または HTTP 経由で SOAP パケットで XML for Analysis を送受信することで、SQL Server Analysis Services サーバーと通信します。 HTTP 接続では、IIS によってインスタンス化された COM オブジェクト (データ ポンプと呼ばれます) を使用します。これは、SQL Server Analysis Services データのコンジットとして機能します。 データ ポンプでは、HTTP ストリーム内に含まれる、基になるデータはまったく検証されません。また、基になるデータ構造はデータ ライブラリ内にあるコードではまったく使用できません。

Win32 クライアント アプリケーションは、OLE DB for OLAP インターフェイスまたは Microsoft® ActiveX ® Data Objects (ADO) オブジェクト モデルを使用して、コンポーネント オブジェクト モデル (COM) オートメーション言語 (Microsoft Visual Basic など) を使用して、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) モードでサーバーを起動できます。
ExcelモードとSQL Server Data Tools用の Power Pivot は、それぞれ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 通常のクライアントとサーバーの接続に使用されます。
HTTPSSAS データ ポンプ サービス経由の HTTP 接続、または SharePoint Power Pivot Web サービス (WS) コンポーネントの呼び出しによって使用されます。
INPROC インプロセス エンジンへの接続に使用されます。
チャネルSharePoint ファーム内の Power Pivot System Service との通信用に予約されています。