表形式オブジェクト モデル (TOM)

適用対象:SQL Server 2016 以降の Analysis Services Azure Analysis Services Fabric/Power BI Premium

表形式オブジェクト モデル (TOM) は、互換性レベル 1200 以上で作成された表形式モデルのプログラミング シナリオをサポートするために作成された Analysis Management オブジェクト (AMO) クライアント ライブラリの拡張機能です。 AMO と同様に、TOM には、モデルの作成、データのインポートと更新、ロールとアクセス許可の割り当てなどの管理機能をプログラムで処理する方法が用意されています。

TOM は、 モデルテーブルリレーションシップ オブジェクトなどのネイティブの表形式メタデータを公開します。 以下に示すオブジェクト モデル ツリーの概要図は、コンポーネント パーツがどのように関連しているかを示しています。

TOM は AMO の拡張機能であるため、新しい表形式オブジェクトを表すクラスはすべて、新しい Microsoft.AnalysisServices.Tabular.dll アセンブリに実装されます。 AMO の汎用クラスが Microsoft.AnalysisServices.Core アセンブリに移動されました。 コードでは、両方のアセンブリを参照する必要があります。 詳細については、「 表形式オブジェクト モデル (Microsoft.AnalysisServices.Tabular) のインストール、配布、および参照」 を参照してください。

API は、マネージド .NET コードで使用できます。 特定の AMO/TOM クラスの詳細については、「 Microsoft.AnalysisServices 名前空間リファレンス」を参照してください。 スクリプトやクエリ言語のサポートなど、表形式モデルのプログラミング オプションの完全な一覧については、「 互換性レベル 1200 の表形式モデル プログラミング」を参照してください。

表形式オブジェクト モデル階層

論理的な観点から見ると、すべての表形式オブジェクトはツリーを形成し、そのルートは Database から派生した モデルです。 サーバーデータベース は表形式とは見なされません。これらのオブジェクトは、多次元モードで実行されているサーバーでホストされている多次元データベース、またはオブジェクト定義に表形式メタデータを使用しない下位互換性レベルの表形式モデルを表すこともできます。

AttributeHierarchyKPI、および LinguisticMetadata を除き、各子オブジェクトはコレクションのメンバーにすることができます。 たとえば、Model オブジェクトには Table オブジェクトのコレクション (Tables プロパティを使用) が含まれており、各 Table オブジェクトには Column オブジェクトのコレクションが含まれます。

この階層内の親オブジェクトの最下位レベルの子孫は Annotation オブジェクトです。このオブジェクトは、スキーマを処理するコードを指定する限り、必要に応じてスキーマを拡張するために使用できます。

オブジェクト階層図

TOM は AMO インフラストラクチャの上に構築されており、1200 未満の互換性レベルで多次元データベースと表形式データベースにも対応します。 これには実用的な影響がいくつかあります。 表形式のメタデータ ( サーバーデータベースなど) で指定されていないオブジェクトを管理する場合は、それらのオブジェクトを記述する既存の AMO スタックの一部を活用する必要があります。 レガシ API と共に、メジャー オブジェクトとマイナー オブジェクトの概念は、サーバーから検出されたオブジェクトの状態や、サーバーに保存されたときの詳細な説明を提供します。 Microsoft.AnalysisServices 名前空間の MajorObject クラスは、 Refresh および Update のメソッドを公開します。 マイナー オブジェクトは、そのオブジェクトを含むメジャー オブジェクトを介してのみ更新または保存されます。

これに対し、 ModelTable などの表形式メタデータの一部であるオブジェクトを管理する場合は、まったく新しい表形式スタックを利用します。 このスタック内では、更新がきめ細かく行われます。つまり、Microsoft.AnalysisServices.Tabular 名前空間の MetadataObject クラスから派生したすべてのメタデータ オブジェクトをサーバーに個別に保存できます。 通常は、 モデル全体を検出します。 次に、その下にある個々のメタデータ オブジェクト ( Table や Column など) に変更 を加えます。 次に 、Model.SaveChanges() メソッドを呼び出します。このメソッドは、ユーザーが行った変更を詳細なレベルで把握し、変更されたオブジェクトのみを更新するコマンドをサーバーに送信します。

TOM と XMLA

ネットワーク上では、TOM は XMLA プロトコルを使用してサーバーと通信し、オブジェクトを管理します。 表形式以外のオブジェクトを管理する場合、TOM は XMLA の Analysis Services スクリプト言語拡張機能である ASSL を使用します。 表形式オブジェクトを管理する場合、TOM は MS-SSAS-T 表形式プロトコル (XMLA の拡張も使用します) を使用します。 詳細については、MS-SSAS-T SQL Server Analysis Services表形式プロトコルのドキュメントを参照してください

TOM と JSON

JSON ドキュメントとして構造化された表形式メタデータには、表形式モデル スクリプト言語 (TMSL) を使用した新しいコマンドとオブジェクト モデル定義構文があります。 スクリプト言語では、要求と応答の本文に JSON が使用されます。

TMSL と TOM の両方が同じオブジェクト、 TableColumn などを公開し、同じ操作である CreateDeleteRefresh、TOM では、ワイヤ上で TMSL を使用しません。 TOM では、前に説明したように、代わりに MS-SSAS-T 表形式プロトコルが使用されます。

ユーザーは、C# プログラムまたは PowerShell スクリプトから TOM ライブラリを使用するか、PowerShell、SQL Server Management Studio (SSMS)、またはSQL Server エージェント ジョブを使用して実行される TMSL スクリプトを使用して表形式データベースを管理するかを選択できます。

どちらか一方を使用する決定は、要件の詳細に至ります。 TOM ライブラリは、TMSL と比較して豊富な機能を提供します。 具体的には、TMSL はデータベース、テーブル、パーティション、またはロール レベルでのみ粒度の粗い操作を提供しますが、TOM を使用すると、より細かい粒度での操作が可能になります。 プログラムでモデルを生成または更新するには、TOM ライブラリ内の API の全範囲が必要です。

Power BI での TOM の使用

Power BI Premium、Premium Per User、Power BI Embedded ワークスペースでは、XMLA エンドポイントを介したオープン プラットフォーム接続がサポートされます。 XMLA エンドポイントを使用すると、カスタム ツール、スクリプト、自動化されたプロセスをデータ モデリングに使用したり、ワークスペースとセマンティック モデルの管理タスクを実行したりできます。

TOM を使用して Power BI セマンティック モデルを操作する .Net アプリケーションを作成する前に、Power BI ドキュメントの 「XMLA エンドポイントとのセマンティック モデルの接続」 を参照してください。 この記事では、XMLA エンドポイントで読み取り/書き込みアクセスを有効にする方法、ワークスペース接続 URL を取得する方法、およびカスタム アプリ、外部ツール、スクリプトを使用したセマンティック モデル管理のその他の重要な側面について説明します。

セマンティック モデルの管理と管理に表形式オブジェクト モデルを使用する方法の詳細については、「 Power BI セマンティック モデル (TOM) のプログラミング」を参照してください。

こちらもご覧ください

表形式モデルの互換性レベル
Analysis Services クライアント ライブラリ
XML for Analysis (XMLA) リファレンス
分析管理オブジェクト (AMO)