time 
设为首页】【收藏本站
当前位置: 主页 > 数据库 > SQL Server > SQL 基础 > 通过SQL Server Analysis Services的数据挖掘功能构建商品推荐功能(二)

通过SQL Server Analysis Services的数据挖掘功能构建商品推荐功能(二)

时间:2013-07-02 23:17 点击:1680次 字体:[ ]




此篇在上一篇已经构建好挖掘模型的基础之上,介绍如何构建服务接口。

 

编写服务接口的方法很多,比如使用WCF。为了简便,这里直接使用ASP.NET Web Services。

将挖掘模型的具体查询的实现部分写到Web服务代码中,主要是考虑到代码分层降低耦合性。另外这部分逻辑通过服务的方式来暴露接口,可以方便其它任何平台来进行调用,比如ASP.NET, Winform, WPF或者其它基于java的技术框架等。Web服务最主要的部分是XML,一个服务接口往往就是一个URL地址,客户端程序通过向这个地址发送xml请求的方式,来获取服务端代码的响应,结果再以xml的方式返回回来。那么既然来回通信的都是xml数据,是否意味这还要手动写代码来序列化和反序列化xml数据呢?这里面又涉及到一个SOAP的概念,这是一个在10年前很火的概念,简单对象访问协议。通过这个SOAP协议,客户端程序可以知道要访问一个Web服务,应该发送什么样的xml数据,以及收到服务端xml的数据之后,本地再如何解析这些数据。基于这样一个方式,Visual Studio中,当你引用一个服务的时候,它就会根据这个协议,在你本地生成若干代理类,这样在你调用远程的一个Web服务的时候,你就会感觉像是在调用本地里的一个类的方法一样方便。

笔者注:如果你用Winform和ASP.NET等,那么你也可以选择直接在代码里访问挖掘模型的数据,但是如果是其它平台,比如Win 8 App, silverlight和flash等,它们是无法直接和数据源进行通信的,所以只能通过服务的方法来访问。

本篇就是要编写这样一个服务接口,这个服务接受客户已经购买的商品列表信息,然后根据这些信息来向用户推荐其它商品。

服务的核心逻辑是根据传送过来的商品列表,来动态的去拼DMX语句。在上一篇中提到的那个DMX语句,这里主要以它为"模版"。

SELECT FLATTENED

PredictAssociation([Association].[v Assoc Seq Line Items],INCLUDE_STATISTICS,3)

FROM

[Association]

NATURAL PREDICTION JOIN

(

SELECT (SELECT 'Touring Tire' AS [Model]

UNION

SELECT 'Touring Tire Tube' AS [Model]

) AS [v Assoc Seq Line Items]) AS t

根据上一篇的讲解,我们知道需要变化的就是SELECT UNION SELECT的部分,一条商品对应一个SELECT。
 

还有一个需要介绍的东西是ADOMD.NET,这个名字你看上去可能感觉有些面熟,没错,你肯定用过ADO.NET,还记得经典方式操作数据库的步骤吗?新建Connection, Command然后DataReader或者其它方式来接收数据。ADOMD.NET就是专门用来访问分析服务用的,由于它跟ADO.NET一样都集成自同一接口,所以你可以找到熟悉的Connection和Command对象,而接收对象的除了DataReader外,还有跟DataSet相对应的CellSet对象。

传统的分析服务是包含多维模型和数据挖掘的,所以在ADOMD.NET下,可以抛MDX(查多维数据集用的)和DMX(查挖掘模型用的)。这里我们用的数据访问接口就是ADOMD.NET。

 

确认好以上逻辑之后,我们开始构建Web服务。

这里我们使用Visual Studio 2012来编写服务。跟上一篇不同,上一篇为了编写一个SQL Server 2012的分析服务项目,我们用的是SQL Server Data Tools,这个实际上就是Visual Studio 2010的一个Shell。而那个地方为什么用的版本是2010而不是2012?这里面有一个SQL Server和Visual Studio版本的一个对应的关系。

SQL Server版本

对应的Visual Studio Shell版本

2000

2005

2005

2008

2008

2012

2010

2012的下一个版本

2012

 

可以看到主要还是根据两个产品系列的版本发布有关系。所以这里就有一个地方需要留意,如果你的机器上同时安装了Visual Studio 2012和SQL Server 2012,那么当你打开一个类似上一篇中建立的分析服务项目的时候,不要默认双击打开项目文件,因为系统会用Visual Studio 2012 (不是应该与其对应的2010)来打开你的项目,然后提示你将项目升级到2012。不用想,对应Visual Studio 2012 Shell的SQL Server版本还没发布呢,所以即使升级了最后也一定是失败。

下面言归正传,打开Visual Studio 2012。点击菜单栏FILE->New Project。

通过SQL Server Analysis Services的数据挖掘功能构建商品推荐功能(二)_www.fengfly.com



本文地址 : http://www.fengfly.com/plus/view-213020-1.html
标签: SQL Server 数据挖掘 商品推荐 Analysis Services
------分隔线----------------------------
最新评论 查看所有评论
发表评论 查看所有评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
评价:
表情:
验证码: