安装、分发和引用表格对象模型
适用于:SQL Server 2016 及更高版本的 Analysis Services Azure Analysis Services Fabric/Power BI Premium
本文介绍如何下载、引用和重新分发表格对象模型 (TOM) ,这是一个 C# 库,用于在托管代码中创建和管理表格模型和数据库。
TOM 是 AMO 客户端库 (Microsoft.AnalysisServices.dll) 的扩展。 若要使用 TOM,模型和数据库必须处于兼容级别 1200 或更高。
AMO-TOM 程序集
AMO 包括新的核心程序集、表格程序集和 JSON 程序集。 它还包括原始 AMO 程序集(Microsoft.AnalysisServices.dll),自首次发布以来一直是 Analysis Services 的一部分。 重构的 AMO 将公共类卸载到一个程序集,并通过其他程序集在表格 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 数据库 多维数据集 维度 度量值组 |
Json Microsoft.AnalysisServices.Tabular.Json.dll |
一个帮助程序 DLL,用于包装 NewtonSoftJson.dll (JSON.NET) 以控制更新,消除了在服务器工作负载中引入 JSON 序列化的功能更改的风险。 此 DLL 作为依赖项存在于 TOM 中,不应直接在代码中使用。 |
无。 |
了解程序集依赖项
若要针对 AMO 进行编程,解决方案必须包含对依赖 DLL 的引用。 AMO 和 TOM 都依赖于 Core,因为它提供基类。
AMO 依赖于 TOM,因为 AMO 中的某些类引用了 TOM 中的类。 例如,AMO 数据库对象具有在 TOM dll 中实现的 Model 类型的 Model 属性。
不能在没有 Microsoft.AnalysisServices.Tabular.dll 的情况下分发 Microsoft.AnalysisServices.dll,但可以在没有其他命名空间的情况下引用其各自的命名空间。
选择要在代码中使用的命名空间
在对象层次结构中,Database 下的任何对象都是通过 Model 对象构建的表格元数据,或者通过 Cube、Dimension 或 MeasureGroup 对象构建的多维元数据构造。 对于服务器、数据库、角色或跟踪级别的高级操作,选择引用哪个命名空间将取决于代码需要支持的工作负载。
- 如果解决方案的兼容性级别为 1200 或更高,则使用 Tabular.Server 或 Tabular.Database,并且所使用的 Database 对象必须提供对模型、表、列和其他以表格元数据构造表示的对象的访问权限。
- 如果下游代码引用多维对象(如多维数据集、数据源、DataSourceViews 和维度),请使用 AnalysisServices.Server 或 AnalysisServices.Database。
对于支持混合数据库和模型类型的工具和应用程序,需要这两个命名空间。
不需要在代码中引用 Core 命名空间;Core 中的类是为主要对象提供通用属性(如 Name 和 Description)而创建的基类。
下载并安装 AMO
转到 “客户端库”。
使用 Windows Installer 或 NuGet 包选择并下载 AMO。
添加引用
在 解决方案资源管理器>添加引用>浏览。
转到 C:\Program Files\Microsoft SQL Server\140\SDK\Assemblies,然后选择:
- Microsoft.AnalysisServices.Core
- Microsoft.AnalysisServices.Tabular
- Microsoft.AnalysisSerivces.Tabular.Json
单击 “确定” 。 在“解决方案资源管理器”中,确认“引用”文件夹中存在程序集。
在代码页中,如果数据库和模型为表格 1200 或更高的兼容级别,请添加 Microsoft.AnalysisServces.Tabular 命名空间。
using Microsoft.AnalysisServices; using Microsoft.AnalysisServices.Tabular;
当包含具有 Server、Database、Role 和 Trace 对象的通用类的命名空间时,请通过限定要使用的命名空间来避免不明确的引用 (例如,Microsoft.AnalysisServices.Tabular.Server 使用表格命名空间) 实例化 Server 对象。
使用应用程序重新分发 AMO 和 TOM
通过 sql_as_amo.msi 安装包或 NuGet 包重新分发 AMO 和 TOM。 如果要为调用 AMO 或 TOM 的客户端应用程序生成安装程序,请将 sql_as_amo.msi 添加到可执行文件。
包是独立的,提供在代码中调用 AMO 和 TOM 所需的所有程序集。 TOM 编程方案不需要其他包(如 SQL_AS_OLEDB.msi 或 SQL_AS_ADOMD.msi)。