表形式オブジェクト モデルのインストール、配布、および参照
適用対象:
SQL Server 2016 以降の Analysis Services
Azure Analysis Services
Power BI Premium
この記事では、マネージド コードで表形式モデルとデータベースを作成および管理するための C# ライブラリである表形式オブジェクト モデル (TOM) をダウンロード、参照、再配布する方法について説明します。
TOM は、AMO クライアント ライブラリ (Microsoft.AnalysisServices.dll) の拡張機能です。 TOM を使用するには、モデルとデータベースが互換性レベル 1200 以上である必要があります。
AMO-TOM アセンブリ
AMO には、新しい Core、表形式、および JSON アセンブリが含まれています。 また、最初のリリースから Analysis Services の一部となっている元の AMO アセンブリ (Microsoft.AnalysisServices.dll) も含まれています。 再構築された AMO は、共通クラスを 1 つのアセンブリにオフロードし、追加のアセンブリを介して表形式 API と多次元 API の論理分割を提供します。
次の表では、各アセンブリについて説明します。
| アセンブリ | 機能 | 重要なクラス |
|---|---|---|
| コア Microsoft.AnalysisServices.Core.dll |
表形式データベースと多次元データベースの両方に共通。 例外処理、サーバー インスタンスとデータベースへの汎用接続、およびサーバー オブジェクトとデータベース オブジェクトの共通プロパティとメソッドへのアクセスを提供します。 |
コア サーバー コア データベース AmoException |
| トム Microsoft.AnalysisServices.Tabular.dllバージョン 13.0.1601.5 以降。 |
表形式メタデータ オブジェクトを作成および管理します。 | TOM サーバー TOM データベース モデル テーブル 列 リレーションシップ |
| AMO Microsoft.AnalysisServices.dll |
表形式の 1050 から 1103 データベースを含む多次元メタデータ オブジェクトを作成および管理します。 | AMO サーバー AMO データベース キューブ Dimension [MeasureGroup] |
| Json Microsoft.AnalysisServices.Tabular.Json.dll |
更新プログラムを制御するためにNewtonSoftJson.dll (JSON.NET) をラップするヘルパー DLL。サーバー ワークロードで JSON シリアル化に機能的な変更が加わるリスクを排除します。 この DLL は TOM の依存関係として存在し、コード内で直接使用することを意図していません。 |
[なし] : |
アセンブリの依存関係について
AMO に対してプログラミングするには、ソリューションに依存 DLL への参照を含める必要があります。 AMO と TOM はどちらも、基本クラスを提供するため、Core に依存します。
AMO の一部のクラスは TOM からクラスを参照するため、AMO は TOM に依存します。 たとえば、AMO Database オブジェクトには Model 型のプロパティがあり、TOM dll に実装されています。

Microsoft.AnalysisServices.Tabular.dllなしでMicrosoft.AnalysisServices.dllを配布することはできませんが、他の名前空間を使用せずにそれぞれの名前空間を参照することはできます。
コードで使用する名前空間の選択
オブジェクト階層では、Database の下のオブジェクトは、Model オブジェクトを使用した表形式のメタデータ構築か、Cube、Dimension、または MeasureGroup オブジェクトを使用した多次元メタデータ構築のいずれかです。 サーバー、データベース、ロール、またはトレース レベルでの高度な操作の場合、参照する名前空間の選択は、コードでサポートする必要があるワークロードによって異なります。
- ソリューションが互換性レベル 1200 以上の場合は、Tabular.Server または Tabular.Database を使用します。また、使用するデータベース オブジェクトは、表形式メタデータ構造として表されるモデル、テーブル、列、およびその他のオブジェクトへのアクセスを提供する必要があります。
- ダウンストリーム コードがキューブ、データソース、DataSourceViews、ディメンションなどの多次元オブジェクトを参照する場合は、AnalysisServices.Server または AnalysisServices.Database を使用します。
データベースとモデルの種類の組み合わせをサポートするツールとアプリケーションの両方の名前空間が必要になります。
コードで Core 名前空間を参照する必要は不要です。Core のクラスは、主要なオブジェクトに共通のプロパティ (Name や Description など) を提供するために作成された基底クラスです。
AMO をダウンロードしてインストールする
クライアント ライブラリに移動します。
Windows インストーラーまたはNuGet パッケージを使用して AMO を選択してダウンロードします。
参照の追加
ソリューション エクスプローラー>参照を追加>します。
C:\Program Files\Microsoft SQL Server\140\SDK\Assemblies に移動し、次を選択します。
- Microsoft.AnalysisServices.Core
- Microsoft.AnalysisServices.Tabular
- Microsoft.AnalysisSerivces.Tabular.Json
[OK] をクリックします。 ソリューション エクスプローラーで、アセンブリが [参照] フォルダーに存在するかどうかを確認します。
データベースとモデルが表形式 1200 以上の互換性レベルの場合は、コード ページで Microsoft.AnalysisServces.Tabular 名前空間を追加します。
using Microsoft.AnalysisServices; using Microsoft.AnalysisServices.Tabular;サーバー、データベース、ロール、トレース のオブジェクトに共通するクラスを持つ名前空間を含める場合は、使用する名前空間を修飾することであいまいな参照を回避します (たとえば、Microsoft.AnalysisServices.Tabular.Server では、表形式名前空間を使用して Server オブジェクトがインスタンス化されます)。
アプリケーションで AMO と TOM を再配布する
AMO と TOM の再配布は、sql_as_amo.msiインストール パッケージまたは NuGet パッケージを使用します。 AMO または TOM を呼び出すクライアント アプリケーションのセットアップ プログラムをビルドする場合は、実行可能ファイル にsql_as_amo.msi を追加します。
パッケージは自己完結型であり、コードで AMO と TOM を呼び出すために必要なすべてのアセンブリを提供します。 SQL_AS_OLEDB.msiやSQL_AS_ADOMD.msiなどの他のパッケージは、TOM プログラミング シナリオでは特に必要ありません。