针对挖掘模型和挖掘结构使用钻取(Analysis Services – 数据挖掘)

“钻取”意味着能够查询挖掘模型和挖掘结构以了解有关包括在模型或结构中的事例的详细信息。SQL Server 2008 提供了两个用来钻取到事例数据的不同选项。您可以钻取到用来生成数据的事例,也可以钻取到挖掘结构中的事例。

如果您希望查看用来为模型定型的事例以及用来测试模型的事例,或者如果您希望检查事例数据的属性,则钻取到事例数据会非常有用。

如果结构中包含模型中可能不可用的信息,则钻取到结构事例会非常有用。通常,如果您的挖掘结构支持多种不同类型的模型,则可以更有选择性地在模型中使用结构中的数据。例如,即使结构中包括客户联系信息,也不在聚类分析模型中使用该数据。但是,在创建聚类分析模型之后,您可能希望检索那些分组到特定分类中的客户的联系信息。

在数据挖掘设计器中使用钻取

如果挖掘模型已经配置为允许进行钻取,而且如果您具有适当的权限,那么,当您浏览模型时,可以在相应的查看器中单击某个节点,并检索有关该特定节点中各个事例的详细信息。

如果处理挖掘结构时缓存了定型事例,并且您具有必要的权限,则您可以从模型事例和挖掘结构返回信息(包括挖掘模型中没有的列)。有关信息,请参阅如何从挖掘模型钻取到事例数据

有关如何对现有挖掘模型启用钻取的信息,请参阅如何为挖掘模型启用钻取

使用钻取功能时的注意事项

  • 如果使用数据挖掘向导,则用以对模型事例启用钻取的选项位于向导的最后一页。默认情况下,钻取功能处于禁用状态。有关详细信息,请参阅完成向导(数据挖掘向导)

  • 如果您使用 DMX 来创建挖掘结构,请使用 WITH DRILLTHROUGH 子句。有关详细信息,请参阅 CREATE MINING STRUCTURE (DMX)

  • 您可以向现有的挖掘模型中添加钻取功能,但是,如果这样做,必须重新处理该模型,才能钻取到所需的数据。

  • 钻取就是检索在处理挖掘结构时缓存的定型事例的相关信息。因此,如果在结构处理完毕后,通过将 MiningStructureCacheMode 属性更改为 ClearAfterProcessing,清除了缓存的数据,则钻取功能将无法正常工作。若要对结构列启用钻取,则必须将 MiningStructureCacheMode 属性更改为 KeepTrainingCases,然后重新处理结构。

  • 如果挖掘结构不允许进行钻取,但是挖掘模型允许进行钻取,则只能查看模型事例中的信息,而不能查看挖掘结构中的信息。

钻取的安全问题

如果您希望从模型钻取到结构事例,请确认挖掘结构和挖掘模型的 AllowDrillThrough 属性均设置为 True。而且,您必须是对挖掘结构和挖掘模型都具有钻取权限的角色的成员。有关如何创建角色的信息,请参阅角色设计器(Analysis Services - 多维数据)。有关分配适用于特定挖掘结构和挖掘模型的权限的信息,请参阅授予访问挖掘结构和挖掘模型的权限

挖掘结构和挖掘模型的钻取权限是分开设置的。即使不具有结构的钻取权限,模型的钻取权限也会允许您从模型进行钻取。如果拥有结构的钻取权限,则可通过使用 StructureColumn (DMX) 函数,将结构列包含到模型钻取查询中。

注意注意

如果对挖掘结构和挖掘模型都启用了钻取,则只要用户是拥有挖掘模型的钻取权限的角色成员,就可以查看挖掘结构中的列,即使这些列并未包含在挖掘模型中,也是如此。因此,为了保护敏感数据,应设置数据源视图来屏蔽个人信息,并且仅在需要时才允许对挖掘结构进行钻取访问。

钻取限制

  • 下面的限制适用于针对模型的钻取操作,具体情况取决于用来创建模型的算法:

算法名称

问题

Microsoft Naïve Bayes 算法

不支持。这些算法不为内容中的特定节点分配事例。

Microsoft 神经网络算法

不支持。这些算法不为内容中的特定节点分配事例。

Microsoft 逻辑回归算法

不支持。这些算法不为内容中的特定节点分配事例。

Microsoft 线性回归算法

支持。但是,由于该模型创建一个节点 (All),因此钻取时会返回该模型的所有定型事例。如果定型集非常大,则加载结果可能会需要很长时间。

Microsoft 时序算法

支持。但是,不能通过使用数据挖掘设计器的“挖掘模型查看器”来钻取到结构或事例数据,而必须创建一个 DMX 查询。

同样,不能钻取到特定节点,也不能编写一个 DMX 查询来检索时序模型内特定节点中的事例。可以通过使用其他条件(如日期或属性值)来从模型或结构中检索事例数据。

如果您希望查看由 Microsoft 时序算法创建的 ARTxp 和 ARIMA 节点的详细信息,可以使用 Microsoft 一般内容树查看器(数据挖掘设计器)

使用 DMX 来创建钻取查询

对于支持钻取的所有模型,只要启用了钻取,就可以通过在 SQL Server Management Studio 或任何其他支持 DMX 的客户端创建 DMX 查询来钻取到事例和结构数据。下面是通常用来检索模型事例和结构事例的语法:

SELECT <model column list>, StructureColumn('<structure column name') FROM <modelname>.CASES

例如,下面的 DMX 查询返回时序模型中特定产品系列的事例。该查询还返回 Amount 列,该列在挖掘结构中可用,但却未在挖掘模型中使用。

SELECT [DateSeries], [Model Region], Quantity, StructureColumn('Amount') AS [M200 Pacific Amount]
FROM Forecasting.CASES
WHERE [Model Region] = 'M200 Pacific'

请注意,在此示例中,使用别名对该结构列进行了重命名。如果您没有为该结构列分配别名,则该列将以 "Expression" 名称返回。

有关使用 DMX 查询返回事例数据的详细信息,请参阅 SELECT FROM <模型>.CASES (DMX)SELECT FROM <结构>.CASES