表格式物件模型 (TOM)

適用于:SQL Server 2016 和更新版本的 Analysis Services Azure Analysis Services Fabric/Power BI Premium

表格式物件模型 (TOM) 是 Analysis Management Object (AMO) 用戶端程式庫的延伸模組,其建立以支援相容性層級 1200 和更新版本所建立之表格式模型的程式設計案例。 如同 AMO,TOM 提供程式設計方式來處理系統管理功能,例如建立模型、匯入和重新整理資料,以及指派角色和許可權。

TOM 會公開原生表格式中繼資料,例如 模型資料表、資料 關聯 性物件。 下面提供之物件模型樹狀結構的高階檢視,說明元件元件如何相關。

由於 TOM 是 AMO 的延伸模組,因此所有代表新表格式物件的類別都會在新的 Microsoft.AnalysisServices.Tabular.dll 元件中實作。 AMO 的一般用途類別已移至 Microsoft.AnalysisServices.Core 元件。 您的程式碼必須參考這兩個元件。 如需詳細資訊 ,請參閱安裝、散發及參考表格式物件模型 (Microsoft.AnalysisServices.Tabular)

API 適用于受控 .NET 程式碼。 若要深入瞭解特定的 AMO/TOM 類別,請參閱 Microsoft.AnalysisServices 命名空間參考。 若要檢閱表格式模型的完整程式設計選項清單,包括腳本和查詢語言支援,請參閱 相容性層級 1200 的表格式模型程式設計

表格式物件模型階層

從邏輯觀點來看,所有表格式物件都會形成樹狀結構,也就是從 Database 遞減的 Model根目錄。 伺服器資料庫 不會被視為表格式,因為這些物件也可以代表裝載于多維度模式之伺服器上所裝載的多維度資料庫,或是低相容性層級的表格式模型,該層級不會針對物件定義使用表格式中繼資料。

除了 AttributeHierarchyKPILinguisticMetadata之外,每個子物件都可以是集合的成員。 例如, Model 物件包含 Table 物件的集合 , (透過 Tables 屬性) ,而每個 Table 物件都包含 Column 物件的集合等等。

此階層中任何父物件的最低層級子系是 Annotation 物件,只要您提供程式碼來處理架構,就可以選擇性地擴充架構。

物件階層圖物件

TOM 建置在 AMO 基礎結構之上,其也會容納相容性層級低於 1200 的多維度和表格式資料庫。 這有一些實際的影響。 當您管理表格式中繼資料中未指定的物件時, (例如 伺服器資料庫) ,您需要利用描述這些物件的現有 AMO 堆疊部分。 除了舊版 API 之外,還有主要和次要物件的概念,可提供從伺服器探索到的物件狀態細微描述,或儲存至伺服器時。 Microsoft.AnalysisServices 命名空間下的 MajorObject 類別會公開 RefreshUpdate的方法。 次要物件只會透過包含這些物件的主要物件重新整理或儲存。

相反地,當您管理屬於表格式中繼資料一部分的物件,例如 ModelTable時,您會利用全新的表格式堆疊。 在此堆疊中,更新會更精細,這表示衍生自 Microsoft.AnalysisServices.Tabular 命名空間下 MetadataObject 類別的每個中繼資料物件都可以個別儲存到伺服器。 一般而言,您會探索整個 模型。 接著,您會變更其底下的個別中繼資料物件,例如 TableColumn。 接著,您會呼叫 Model.SaveChanges () 方法,該方法會瞭解您在細部層級所做的變更,並將命令傳送至伺服器,只更新已變更的物件。

TOM 和 XMLA

在連線上,TOM 會使用 XMLA 通訊協定來與伺服器通訊,以及管理物件。 管理非表格式物件時,TOM 會使用 ASSL,這是 XMLA 的 Analysis Services 指令碼語言延伸模組。 管理表格式物件時,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 執行的 TMSL 腳本、SQL Server Management Studio (SSMS) 或SQL Server Agent作業。

使用其中一項或另一項決策將取決於您的需求。 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,以及使用自訂應用程式、外部工具和腳本進行語意模型管理的其他重要層面。

若要深入瞭解如何使用表格式物件模型來管理語意模型,請參閱 (TOM) 程式設計 Power BI 語意模型

另請參閱

表格式模型的相容性層級
Analysis Services 用戶端程式庫
XML for Analysis (XMLA) 參考
分析管理物件 (AMO)