SQL Server 2005中数据挖掘算法扩展方法

栏目:技术文章 发布时间:2026-04-26 09:25

SSAS为我们提供了九种数据挖掘算法,但是在应用中我们需要根据实际问题设计适当的算法,这个时候就需要扩展SSAS,使它能应用更多的算 法,SSAS有比较好的可扩展性,它提供了一个完整的机制来进行扩展,只要继承一些类并按适当的方法进行注册就可以在SSAS中使用自己的算法了。

下面我将通过实例分别用几篇文章来介绍一下如何开发SSAS算法插件。本文介绍的算法插件开发方法是基于托管代码的,是用C#开发的(算法插件也可以用C++开发,并且SQLSERVER2005的案例中附带C++版本的代码stub)。整个过程大至为六个步骤。在开始开发之前需要做一些准备工作,就是要去下载 一个用C++编写的COM组件,叫DMPluginWrapper(可以通过下载本文附带的附件获得),它作为SSAS与算法插件的中间层,用于处理 SSAS与算法插件之间的交互以及封装从SSAS到算法插件的参数和从算法插件到SSAS的处理结果。DMPluginWrapper、SSAS和算法插 件之间的关系可以由下图来描述。

SQL Server 2005中数据挖掘算法扩展方法(图1) 

图表 1: DMPluginWrapper、SSAS和算法插件之间的关系

下面开始创建算法扩展的项目。

首先新建一个类库项目(名为AlgorithmPlugin)将刚才的DMPluginWrapper项目引用到新建的这个 AlgorithmPlugin类库项目中。你可以选择为这个类库项目进行程序集签名,这样就可以将其注册到GAC中。另外还要为 DMPluginWrapper添加后生成脚本将程序集注册到GAC,参考脚本如下(根据机器具体设置而定):

"C:WINDOWSMicrosoft.NETFrameworkv2.0.50727RegAsm.exe" $(TargetPath) 

GetServiceDescription

GetServiceType

GetViewerType

GetScaling

GetSupportsDrillThrough

GetDrillThroughMustIncludeChildren

GetCaseIdModeled

GetMarginalRequirements

GetParametersCollection

GetSupInputContentTypes

GetSupPredictContentTypes

GetSupportedStandardFunctions

CreateAlgorithm

方法名:SaveContent

参考实现: 

Code

方法名:GetNavigator

参考实现:   

Code

接下来要实现的是AlgorithmNavigator类,这个类要继承于 AlgorithmNavigationBase。这个类主要用于显示算法处理结果中所有结点的信息。在这个类中有三个成员变量:Algorithm类型 的algorithm、bool类型的forDMDimension和int类型的currentNode。下面是这个类要实现的方法:

    方法名(构造方法):AlgorithmNavigator

参考实现:

Code

方法名

MoveToNextTree

GetCurrentNodeId

ValidateNodeId

LocateNode

GetNodeIdFromUniqueName

GetUniqueNameFromNodeId

GetParentCount

GetParentNodeId

GetChildrenCount

GetChildNodeId

GetNodeType

GetNodeUniqueName

GetNodeAttributes

方法名:

//取得结点的字符串表示

GetStringNodeProperty

参考实现:    

Code

case NodeProperty.ConditionXml:

case NodeProperty.Description:

case NodeProperty.ModelColumnName:

case NodeProperty.RuleXml:

case NodeProperty.ShortCaption:    

现在我们已经实现了完所有需要要实现的类,最后要做的就是将算法插件部署到分析服务器。在完成代码后,需要将程序集注册到GAC以便分析服务器 可以从中加载插件。下面的代码就是将DMPluginWrapper加载到GAC的脚本,假如在本文的开头正确地在Visual Studio中设置了后生成(Post-Building)脚本的话可以跳过下面的脚本代码,因为它们是相同的功能:   

//将DMPluginWrapper.dll注册到GAC中 

声明: 此文观点不代表本站立场;转载务必保留本文链接;版权疑问请联系我们。

IT头条

SQL Server 2005中数据挖掘算法扩展方法(图2)
SQL Server 2005中数据挖掘算法扩展方法(图3)
SQL Server 2005中数据挖掘算法扩展方法(图4)
SQL Server 2005中数据挖掘算法扩展方法(图5)
SQL Server 2005中数据挖掘算法扩展方法(图6)

技术热点