AMO 概念和对象模型

本主题提供分析管理对象 (AMO) 的定义,AMO 与 MicrosoftSQL ServerAnalysis Services 体系结构中提供的其他工具和库的关联方式,以及对 AMO 中所有主要对象的概念的解释。

AMO 是 Analysis Services 的管理类的完整集合,可在托管环境中,在 Microsoft.AnalysisServices 命名空间下以编程方式使用。这些类包含在 AnalysisServices.dll 文件中,该文件通常位于 SQL Server 安装目录下的 \100\SDK\Assemblies\ 文件夹中。若要使用 AMO 类,请将对此程序集的引用包含在项目中。

使用 AMO 可以创建、修改和删除对象,如多维数据集、维度、挖掘结构以及 Analysis Services 数据库;可通过 .NET Framework 中的应用程序对所有这些对象执行操作。您还可以处理和更新存储在 Analysis Services 数据库中的信息。

无法通过 AMO 来查询数据。若要查询数据,请使用 ADOMD.NET

本主题包含以下各节:

Analysis Services 体系结构中的 AMO

AMO 体系结构

使用 AMO

使用 AMO 自动执行管理任务

Analysis Services 体系结构中的 AMO

按照设计,AMO 只用于对象管理,而不用于查询数据。如果用户需要从客户端应用程序查询 Analysis Services 数据,则客户端应用程序应使用 ADOMD.NET

AMO 体系结构

AMO 是一个完整的类库,用于通过客户端应用程序以 .NET Framework 2.0 版托管代码的方式来管理 Analysis Services 实例。

AMO 类库具有类层次结构,特定的类必须在其他类之前实例化才能在代码中使用。此外,还有可随时在代码中实例化的辅助类,但是在使用任一辅助类之前,您可能已经实例化了类层次结构中的一个或多个类。

下图是 AMO 层次结构的高级视图,它包含该层次结构中的主要类。该图显示各类在其容器和同级之间的位置。Dimension 属于 DatabaseServer,可与 DataSourceMiningStructure 同时创建。在同一级别上,某些类必须先实例化,然后才能使用该级别的其他类。例如,必须先创建 DataSource 的实例,然后才能添加新的 DimensionMiningStructure

AMO 类概览

“主要对象”是一种将一个完整对象表示为整个实体而不是其他对象组成部分的类。主要对象包括 ServerCubeDimensionMiningStructure,因为它们是独立的实体。但是,Level 不是主要对象,因为它是 Dimension 的一个组成部分。主要对象的创建、删除、修改或处理可以独立于其他对象。次要对象是只能作为创建父级主要对象的一部分才能创建的对象。次要对象通常在创建主要对象时创建。次要对象的值应在创建时定义,因为次要对象没有默认创建值。

下图显示 Server 对象包含的主要对象。

突出显示的 AMO 主要对象突出显示的 AMO 主要对象 (2)

用 AMO 进行编程时,类和包含类之间的关联使用集合类型属性,例如 ServerDimension。若要使用包含类的一个实例,请先获取对含有或能够含有该包含类的集合对象的引用。然后,在该集合中找到要查找的特定对象,接着可以获得该对象的引用,以便开始使用该对象。

AMO 类

AMO 是一个类库,用于通过客户端应用程序管理 Analysis Services 实例。可以将 AMO 库视为用于完成特定任务的逻辑相关对象组。AMO 类可以按照以下方式进行分类:

类集

用途

AMO 基础类

使用任何其他类集所必需的类。

AMO OLAP 类

用于管理 Analysis Services 中的 OLAP 对象的类。

AMO 数据挖掘类

用于管理 Analysis Services 中的数据挖掘对象的类。

AMO 安全类

用于控制对其他对象的访问权限以及维护安全性的类。

AMO 其他类和方法

用于帮助 OLAP 或数据挖掘管理员完成其日常任务的类。

使用 AMO

AMO 对于自动执行重复任务来说特别有用,例如,基于事实数据表中的新数据在度量值组中创建新分区,或者基于新数据为挖掘模型重新定型。这些创建新对象的任务经常按月、周或季度执行,并且应用程序可以很容易地基于新数据命名这些新对象。

Analysis Services 管理员

Analysis Services 管理员可以使用 AMO 自动执行 Analysis Services 数据库的处理。设计和部署 Analysis Services 数据库则应使用 Business Intelligence Development Studio。

开发人员

开发人员可以使用 AMO 为特定用户组开发管理界面。这些界面可以限制对 Analysis Services 对象的访问,还可以限制用户只能执行特定任务。例如,使用 AMO 可以创建一个备份应用程序,用户使用该应用程序可以查看所有数据库对象,可以选择其中的任何一个数据库,还可以将该数据库备份到指定设备组中的任何一个设备中。

开发人员还可以在其应用程序中嵌入 Analysis Services 逻辑。为此,开发人员可以基于用户输入和其他因素创建多维数据集、维度、挖掘结构和挖掘模型。

OLAP 高级用户

OLAP 高级用户通常是数据分析人员或者其他有很强的编程背景以及想要进一步使用数据对象以改善其数据分析的丰富经验的数据用户。对于需要脱机工作的用户,AMO 可以在脱机之前自动创建本地多维数据集,因而非常有用。

数据挖掘高级用户

对于数据挖掘高级用户,如果您有必须定期重新定型的大型模型集,则 AMO 是最有用的。

使用 AMO 自动执行管理任务

对于大多数重复性的任务来说,与使用任何您选择的语言将其开发为应用程序相比,使用 Integration Services 进行开发可以更好地设计、部署和维护这些任务。但是,对于不能使用 Integration Services 自动执行的重复性任务,可以使用 AMO。如果您想用 Analysis Services 开发专用的商业智能应用程序,AMO 也很有用。

自动对象管理

使用 AMO,可以很容易地基于用户输入或获取的新数据来创建、更新或删除 Analysis Services 对象(例如,DatabaseDimensionCube、挖掘 MiningStructureMiningModelRole)。AMO 非常适合用于必须将已开发的解决方案从独立软件提供商部署到最终客户的安装应用程序。安装应用程序可以验证是否存在早期版本,如果存在,则可以更新结构,删除不再有用的对象,并创建新对象。如果不存在早期版本,它可以从头开始创建所有内容。

AMO 可以非常方便地基于新数据创建新分区,并且可以删除已经超出项目范围的旧分区。例如,对于使用最近 36 个月数据的财务分析解决方案,当接收到新的一个月的数据时,之前第 37 个月的旧数据即可立即被删除。为了优化性能,可以基于使用情况设计新聚合并应用于最近的 12 个月。

自动对象处理

使用 AMO 可以实现对象处理和更新的可用性,从而响应一些特定的事件,而对这些事件进行响应是通常的流数据和使用 Integration Services 的计划任务无法胜任的。

自动安全管理

可以自动执行安全管理操作,向新用户分配角色和权限或者当其他用户过期时立即将其删除。可以创建新界面以简化安全管理员的安全管理工作。这比使用 Business Intelligence Development Studio 更容易。

自动备份管理

使用 Integration Services 任务或者创建自动运行的专用 AMO 应用程序可以自动进行备份管理。使用 AMO 可以为操作员开发帮助他们完成日常工作的备份界面。

不适合使用 AMO 的任务

AMO 不能用于查询数据。若要查询 Analysis Services 数据,包括多维数据集和挖掘模型,请在用户应用程序中使用 ADOMD.NET。有关详细信息,请参阅 ADOMD.NET