AMO 概念和对象模型
适用于: SQL Server Analysis Services Azure Analysis Services Fabric/Power BI Premium
本文介绍 AMO) (分析管理对象、AMO 与 Analysis Services 体系结构中提供的其他工具和库的关系,以及 AMO 中所有主要对象的概念说明。
AMO 是管理类的完整集合,可在托管环境中的 命名空间 Microsoft.AnalysisServices下以编程方式使用。 这些类包含在 AnalysisServices.dll 文件中,该文件通常位于安装程序安装文件的位置,位于文件夹 \100\SDK\Assemblies\ 下。 若要使用 AMO 类,请将对此程序集的引用包含在项目中。
通过使用 AMO,可以创建、修改和删除多维数据集、维度、挖掘结构和数据库等对象;在所有这些对象上,可以在.NET Framework中从应用程序执行操作。 还可以处理和更新存储在数据库中的信息。
Analysis Services 体系结构中的 AMO
按照设计,AMO 只用于对象管理,而不用于查询数据。 如果用户需要从客户端应用程序查询数据,客户端应用程序应使用 ADOMD.NET。
AMO 体系结构
AMO 是一个完整的类库,旨在通过 .NET Framework 2.0 及更高版本的托管代码中的客户端应用程序管理 Analysis Services 实例。
AMO 类库具有类层次结构,特定的类必须在其他类之前实例化才能在代码中使用。 此外,还有可随时在代码中实例化的辅助类,但是在使用任一辅助类之前,您可能已经实例化了类层次结构中的一个或多个类。
下图是 AMO 层次结构的高级视图,它包含该层次结构中的主要类。 该图显示各类在其容器和同级之间的位置。 Dimension属于 Database 和 Server,并且可以与 和 MiningStructure同时DataSource创建。 在同一级别上,某些类必须先实例化,然后才能使用该级别的其他类。 例如,在添加新Dimension的 或 MiningStructure之前,必须创建 的DataSource实例。
主要对象是一个类,该类将整个对象表示为整个实体,而不是另一个对象的一部分。 主要对象包括 Server、 Cube、 Dimension和 MiningStructure,因为这些是它们本身的实体。 但是, Level 不是主要对象,因为它是 的 Dimension构成部分。 主要对象的创建、删除、修改或处理可以独立于其他对象。 次要对象是只能作为创建父级主要对象的一部分才能创建的对象。 次要对象通常在创建主要对象时创建。 次要对象的值应在创建时定义,因为次要对象没有默认创建值。
下图显示了 对象包含的主要对象 Server 。
使用 AMO 编程时,类和包含类之间的关联使用集合类型特性,例如 Server 和 Dimension。 若要使用包含类的一个实例,请先获取对含有或能够含有该包含类的集合对象的引用。 然后,在该集合中找到要查找的特定对象,接着可以获得该对象的引用,以便开始使用该对象。
AMO 类
AMO 是一个类库,旨在从客户端应用程序管理 Analysis Services 的实例。 可以将 AMO 库视为用于完成特定任务的逻辑相关对象组。 AMO 类可以按照以下方式进行分类:
类集 | 目的 |
---|---|
AMO Fundamental 类 | 使用任何其他类集所必需的类。 |
AMO OLAP 类 | 用于管理 OLAP 对象的类。 |
AMO 数据挖掘类 | 用于管理数据挖掘对象的类。 |
AMO 安全类 | 用于控制对其他对象的访问权限以及维护安全性的类。 |
AMO 其他类和方法 | 用于帮助 OLAP 或数据挖掘管理员完成其日常任务的类。 |
使用 AMO
AMO 对于自动执行重复任务来说特别有用,例如,基于事实数据表中的新数据在度量值组中创建新分区,或者基于新数据为挖掘模型重新定型。 这些创建新对象的任务经常按月、周或季度执行,并且应用程序可以很容易地基于新数据命名这些新对象。
Analysis Services 管理员
管理员可以使用 AMO 自动处理数据库。 若要设计和部署数据库,请使用 Visual Studio。
开发人员
开发人员可以使用 AMO 为特定用户组开发管理界面。 这些接口可以限制对对象的访问,并将用户限制为特定任务。 例如,通过使用 AMO,可以创建一个备份应用程序,使用户能够查看所有数据库对象,选择任意一个数据库,并将其备份到一组指定设备中的任何一个。
开发人员还可以在其应用程序中嵌入逻辑。 为此,开发人员可以基于用户输入和其他因素创建多维数据集、维度、挖掘结构和挖掘模型。
OLAP 高级用户
OLAP 高级用户通常是数据分析人员或者其他有很强的编程背景以及想要进一步使用数据对象以改善其数据分析的丰富经验的数据用户。 对于需要脱机工作的用户,AMO 可以在脱机之前自动创建本地多维数据集,因而非常有用。
数据挖掘高级用户
对于数据挖掘高级用户,如果您有必须定期重新定型的大型模型集,则 AMO 是最有用的。
使用 AMO 自动执行管理任务
大多数重复性任务最好使用 Integration Services 进行设计、部署和维护,而不是使用所选的任何语言作为应用程序进行开发。 但是,对于无法使用 Integration Services 自动执行的重复任务,可以使用 AMO。
自动对象管理
借助 AMO,可以轻松地根据用户输入或新获取的数据创建、更新或删除 (对象,例如 DatabaseDimensionCube、、挖掘 MiningStructure和 MiningModelRole 或) 。 AMO 非常适合用于必须将已开发的解决方案从独立软件提供商部署到最终客户的安装应用程序。 安装应用程序可以验证是否存在早期版本,如果存在,则可以更新结构,删除不再有用的对象,并创建新对象。 如果不存在早期版本,它可以从头开始创建所有内容。
在基于新数据创建新分区时,AMO 可能非常强大,并且可以删除超出项目范围的旧分区。 例如,对于使用最近 36 个月数据的财务分析解决方案,当接收到新的一个月的数据时,之前第 37 个月的旧数据即可立即被删除。 为了优化性能,可以基于使用情况设计新聚合并应用于最近的 12 个月。
自动对象处理
通过使用 AMO 来响应使用 Integration Services 的常规流数据和计划任务之外的某些事件,可以实现对象处理和更新的可用性。
自动安全管理
可以自动执行安全管理操作,向新用户分配角色和权限或者当其他用户过期时立即将其删除。 可以创建新界面以简化安全管理员的安全管理工作。 这比使用 Visual Studio 更简单。
自动备份管理
可以使用 Integration Services 任务或创建自动运行的专用 AMO 应用程序来完成自动备份管理。 使用 AMO 可以为操作员开发帮助他们完成日常工作的备份界面。
任务 AMO 不适用于查询数据
AMO 不能用于查询数据。 若要查询数据(包括多维数据集和挖掘模型),请使用用户应用程序中 ADOMD.NET。 有关详细信息,请参阅 使用 ADOMD.NET 进行开发。