表形式オブジェクト モデルのインストール、配布、および参照
適用対象:SQL Server 2016 以降の Analysis Services Azure Analysis Services Fabric/Power BI Premium
この記事では、マネージド コードで表形式モデルとデータベースを作成および管理するための C# ライブラリである表形式オブジェクト モデル (TOM) をダウンロード、参照、再配布する方法について説明します。
TOM は、AMO クライアント ライブラリ (Microsoft.AnalysisServices.dll) の拡張機能です。 TOM を使用するには、モデルとデータベースが互換性レベル 1200 以上である必要があります。
AMO-TOM アセンブリ
AMO には、新しい Core、Tabular、JSON アセンブリが含まれています。 また、最初のリリース以降に Analysis Services に含まれている元の AMO アセンブリ (Microsoft.AnalysisServices.dll) も含まれています。 再構築された AMO は、共通クラスを 1 つのアセンブリにオフロードし、追加のアセンブリを介して表形式 API と多次元 API 間の論理分割を提供します。
次の表では、各アセンブリについて説明します。
アセンブリ | 機能 | 重要なクラス |
---|---|---|
コア Microsoft.AnalysisServices.Core.dll |
表形式データベースと多次元データベースの両方に共通。 例外処理、サーバー インスタンスとデータベースへの汎用接続、および Server オブジェクトと Database オブジェクトの共通プロパティとメソッドへのアクセスを提供します。 |
コア サーバー コア データベース 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 型のプロパティ Model があり、TOM dll に実装されています。
Microsoft.AnalysisServices.Tabular.dll なしで Microsoft.AnalysisServices.dll を配布することはできませんが、他の名前空間を使用せずにそれぞれの名前空間を参照することはできます。
コードで使用する名前空間の選択
オブジェクト階層では、Database の下のオブジェクトは、Model オブジェクトを使用した表形式のメタデータ構築か、Cube、Dimension、または MeasureGroup オブジェクトを介した多次元メタデータ構築のいずれかになります。 サーバー、データベース、ロール、またはトレース レベルでの高度な操作の場合、参照する名前空間の選択は、コードでサポートする必要があるワークロードによって異なります。
- ソリューションが互換性レベル 1200 以上で、使用する Database オブジェクトが、表形式メタデータ構造として表される Model、Table、Columns、およびその他のオブジェクトへのアクセスを提供する必要がある場合は、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] をクリックします。 ソリューション エクスプローラーで、アセンブリが References フォルダーに存在することを確認します。
コード ページで、データベースとモデルが表形式 1200 以上の互換性レベルである場合は、Microsoft.AnalysisServces.Tabular 名前空間を追加します。
using Microsoft.AnalysisServices; using Microsoft.AnalysisServices.Tabular;
Server、Database、Role、および Trace オブジェクトに共通のクラスを持つ名前空間を含める場合は、使用する名前空間を修飾してあいまいな参照を回避します (たとえば、Microsoft.AnalysisServices.Tabular.Server は、Tabular 名前空間を使用して 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 プログラミング シナリオでは特に必要ありません。