技术开发 频道

数据挖掘物理体系结构的远程和本地服务器

  【IT168 技术文档】数据挖掘需要连接到 SQL Server Analysis Services 实例才能工作。虽然您无需创建 OLAP 多维数据集或使用 OLAP 功能即可执行数据挖掘,但是 Analysis Services 引擎提供了诸多优势(如性能和可扩展性),并且数据挖掘可以与 OLAP 共享许多组件。本主题介绍在连接到 SQL Server Analysis Services 的本地或远程实例以创建、处理、部署或查询模型时需要了解的信息。

  服务器配置
  一个服务器实例可支持多个 Analysis Services 数据库,每个数据库都具有其自己的与客户端请求对应并处理对象的 Analysis Services 服务实例。客户端与 Analysis Services 服务器之间的所有通信都使用与平台和语言无关的 XMLA 协议。当从客户端收到请求时,Analysis Services 确定该请求是与 OLAP 相关还是与数据挖掘相关,并相应地路由请求。

  权限和服务器属性
  数据挖掘需要对 Analysis Services 数据库的其他权限。大多数数据挖掘属性可以通过“分析服务器属性”对话框(Analysis Services - 多维数据)设置。

  下面的服务器属性与数据挖掘有特殊关系:

  AllowAdHocOpenRowsetQueries 控制对 OLE DB 访问接口的即席访问,该接口直接加载到服务器内存空间。

  重要提示:
  为提高安全性,建议您将此属性设置为 false。默认值为 false。但是,即使该属性设置为 false,用户仍可以继续创建单独查询,并且可以对允许的数据源使用 OPENQUERY。

  AllowedProvidersInOpenRowset 指定启用即席访问时的访问接口。通过输入一个以逗号分隔的 ProgID 列表,您可以指定多个访问接口。

  MaxConcurrentPredictionQueries 控制服务器上由预测引起的负载。默认值 0 允许对 SQL Server Enterprise 执行不受限制的查询,对 SQL Server Standard 最多执行五次并发查询。超出限制的查询将被序列化,并且可能超时。

  服务器还提供了控制可使用哪些数据挖掘算法(包括对算法的所有限制)以及所有数据挖掘服务的默认值的其他属性。但是,没有任何设置可以专门控制对数据挖掘存储过程的访问。

  还可以设置允许用户优化服务器并控制客户端使用的安全性的属性。

  注意 插件算法只能在 SQL Server Enterprise 中启用。

  处理数据挖掘对象
  您可以使用下列对象模型创建与 Analysis Services 数据库的连接和处理数据挖掘对象:

  ADO 使用 OLE DB 连接到 Analysis Services 服务器。使用 ADO 时,客户端仅限于架构行集查询和 DMX 语句。

  ADO.NET 相较于其他访问接口,可以更好地与 SQL Server 访问接口进行交互。使用数据适配器存储动态行集。使用数据集对象,该数据集对象是作为数据表存储的服务器数据的缓存,可将该服务器数据更新或另存为 XML 形式。

  ADOMD.NET 为处理数据挖掘和 OLAP 优化的托管数据访问接口。ADOMD.NET 速度比 ADO.NET 更快,并且更能有效地利用内存。您还可以通过 ADOMD.NET 检索有关服务器对象的元数据。建议用于客户端应用程序,除非 .NET 不可用。

  Server ADOMD 用于在服务器上直接访问 Analysis Services 对象的对象模型。供 Analysis Services 存储过程使用;无法用于客户端。

  AMO 替换决策支持对象 (DSO) 的 Analysis Services 的管理接口。与使用其他接口相比,在使用 AMO 时,循环访问对象等操作需要更高的权限。这是因为 AMO 直接访问元数据,而 ADOMD.NET 和其他接口仅访问数据库架构。

  移动数据挖掘对象
  您可以按如下方式在各数据库之间或各 Analysis Services 实例之间移动数据挖掘对象:部署解决方案;备份和还原数据库副本;导出和导入结构与模型。

  部署表示将模型从测试或开发服务器移动到其他服务器的过程,以将模型用作生产目的、共享模型或将模型嵌入到应用程序中。

  备份和还原整个 Analysis Services 数据库是在数据挖掘解决方案依赖于 OLAP 对象的情况下选择的方法。SQL Server 2008 提供了新的备份和还原功能,可以更快更方便地备份数据库。

  使用 DMX 语句导入和导出挖掘模型和结构是最简单的移动或备份各关系数据挖掘对象的方法。有关详细信息,请参阅下列主题:

  EXPORT (DMX)

  IMPORT (DMX)

  如果指定 INCLUDE DEPENDENCIES 选项,Analysis Services 还将导出所有所需数据源视图的定义,并且将在导入模型或结构时在目标服务器上重新创建数据源视图。模型导入完成之后,请确保对对象设置必需的挖掘权限。

  注意:
  您不能使用 DMX 导出和导入 OLAP 模型。如果挖掘模型基于 OLAP 多维数据集,则必须对整个数据库使用 Analysis Services 备份和还原功能或部署功能。
 
  处理结构和模型
  有以下三个处理阶段:查询源数据、确定原始统计信息和使用模型定义和算法定型挖掘模型。

  处理对象时,Analysis Services 服务器向提供原始数据的数据库发出查询。该数据库可能是 SQL Server 2005 或 SQL Server 数据库引擎早期版本的实例。使用此数据,Analysis Services 生成所有数据和离散化列的索引,并对连续列创建单独索引。根据每个嵌套表发出查询以创建索引,并根据每个嵌套表生成其他查询,以处理每对嵌套表和事例表之间的关系。创建多个查询的原因在于处理特殊的内部 OLAP 多维数据集。

  您可以通过设置服务器属性 DatabaseConnectionPoolMax 来限制 Analysis Services 发送到关系存储的查询数。

  创建此多维数据集并缓存索引和事例数据之后,服务器将创建独立的线程来为模型定型。在 SQL Server Enterprise 中,所以处理都以并行方式发生。在 SQL Server Standard 中,对处理进行序列化。

  浏览和查询模型
  使用本地或远程服务器可以执行所有类型的预测,但具有下列限制:

  如果使用 Server ADOMD,则可以在不进行连接的情况下使用 DMX 访问该服务器。然后可以将结果直接复制到数据表中。但是,不能将 Server ADOMD 用于远程实例;您只能查询本地服务器。

  对于数据挖掘,ADO.NET 不支持命名参数。您必须使用 ADOMD.NET。

  通过 ADOMD.NET,您可以传递整个表以将其作为参数使用;因此,您可以使用客户端上的数据或服务器无法使用的数据。您还可以将具有形状的表作为预测输入使用。

  使用数据挖掘存储过程
  通过 ADOMD.NET,您可以以分层形式浏览模型内容并递归节点。但是,如果根据模型内容创建查询,查询将返回整个模型。若要避免返回过多的行,您可以使用 ADOMD+ 对象模型根据 Analysis Services 编写存储过程。存储过程的一个常见用途是封装查询以备后用。

  客户端可以使用 CALL 来运行存储过程,包括 Analysis Services 系统存储过程。如果该过程返回数据集,客户端将接收具有嵌套表(包含行)的数据集或数据表。若要编写服务器存储过程,您必须引用 Microsoft.AnalysisServices.AdomdServer 命名空间。

  注意:
  存储过程不能用于更改数据服务器对象上的安全性。执行存储过程时,将使用用户的当前上下文来确定对所有服务器对象的访问权限。因此,对于访问的任何数据库对象,用户必须拥有相应权限。
 
  对数据源的权限
  每次创建或更新数据挖掘结构或模型时,应使用数据源视图中存储的数据。虽然数据源视图是向模型或结构提供数据的对象,DSV 本身不包含数据,而是使用基础数据源中存储的连接信息来获取数据。因此,定义数据源时,必须确保可访问此连接,即使将数据挖掘解决方案移动到其他位置也是如此。

  除确保可访问数据之外,必须配置数据源的安全属性,确保可以处理或查询基于数据的模型或结构,即使已移动此模型或不同用户正在处理此模型也是如此。数据源向导支持四个用于定义数据源的安全性的选项:模拟、模拟和委托、使用服务帐户模拟和默认选项,该默认选项根据操作更改使用的凭据。

  除定义数据源的安全上下文之外,您必须确保用于连接到远程数据源的帐户至少拥有对该数据的读取权限。Analysis Services 支持多种不同类型的数据源,包括 Excel 工作簿、文本文件和 SQL Server 数据库;因此,如何设置这些权限的完整说明不在本主题的讨论范围之内。

0
相关文章