SQLServer 数据挖掘分析经典全集.docx

上传人:b****5 文档编号:7656162 上传时间:2023-01-25 格式:DOCX 页数:50 大小:1.58MB
下载 相关 举报
SQLServer 数据挖掘分析经典全集.docx_第1页
第1页 / 共50页
SQLServer 数据挖掘分析经典全集.docx_第2页
第2页 / 共50页
SQLServer 数据挖掘分析经典全集.docx_第3页
第3页 / 共50页
SQLServer 数据挖掘分析经典全集.docx_第4页
第4页 / 共50页
SQLServer 数据挖掘分析经典全集.docx_第5页
第5页 / 共50页
点击查看更多>>
下载资源
资源描述

SQLServer 数据挖掘分析经典全集.docx

《SQLServer 数据挖掘分析经典全集.docx》由会员分享,可在线阅读,更多相关《SQLServer 数据挖掘分析经典全集.docx(50页珍藏版)》请在冰豆网上搜索。

SQLServer 数据挖掘分析经典全集.docx

SQLServer数据挖掘分析经典全集

 

 

对于初学者来说,本章可以帮助他们入门,对于有一定SQLServer数据挖掘经验的用户来说,本章可以为他们提供一些技术,以帮助他们最有效地发挥该工具集的作用。

但是这并不意味着本章可以取代产品的帮助文档中优秀的帮助和教程。

更确切地说,本章讲述如何使用AnalysisServices提供的通用工具,特别是用于数据挖掘的工具。

本章将通过用户界面来讲述如何使用AnalysisServices的功能,并提供详细的操作步骤来示范如何创建一组挖掘模型。

本章还将穿插介绍相关的一些概念。

如果您偏离这些操作太远,则可以重新开始操作,也可以从本书的Web站点(data_mining_SQL_2008)上获得完整的项目文件,以便随时使用。

本章将会使用附录A描述的MovieClick数据库来举例说明工具的用法。

本章将学习:

●使用BusinessIntelligenceDevelopmentStudio(BIDevStudio)

●理解即时模式和脱机模式

●创建及修改数据源、数据源视图和数据挖掘对象

●浏览数据和评估模型

4.1BIDevStudio介绍

在使用SQLServer数据挖掘功能的过程中,大部分时间将会花费在商业智能应用程序开发工具集(BusinessIntelligenceDevelopmentStudio,BIDevStudio)上。

BIDevStudio环境已经集成到MicrosoftVisualStudio(VS)框架中,为商业智能操作提供了完整的开发环境。

在使用VisualStudio时,数据挖掘项目是一组项目中的一部分,这组项目也称为解决方案。

数据挖掘项目与应用程序所要求的其他项目可以组合到一个解决方案中。

例如,数据库管理员(DatabaseAdministrator,DBA)可能创建一个IntegrationServices项目,这个项目从联机事务处理(OLTP)系统中提取数据,并且把这些数据转换为适合于数据挖掘的形式。

然后,分析员可以创建一个AnalysisServices项目,这个项目包含浏览事务数据和分析事务数据的模型。

最后,应用程序开发人员可以创建一个Web服务和Web站点,在终端用户应用程序和商业化的服务中嵌入这些模型。

所有这些项目都可以包含在一个解决方案中,这个解决方案包含所有相互合作完成的工作。

而且,这些工作的所有方面都可以通过源控制系统中完整的版本历史来获得。

4.1.1用户界面

BIDevStudio主要是为应用程序开发人员设计的,有一个实现解决方案的非结构化方法,该方法与传统的数据挖掘工具完全不一样。

该方法和BIDevStudio开发环境的复杂性,使得那些熟悉其他数据挖掘工具集的用户感到害怕。

然而,开始使用这个工具时,要处理VisualStudio中内置的无数选项和窗口,一旦经历这一段的磨练之后,要创建和分析一个挖掘模型就是非常简单的事。

熟悉BIDevStudio的第一步是理解用户界面各个部分中哪些部分是重要的,并且理解各个部分的作用。

图4-1列出了BIDevStudio的典型窗口布局,其中对各个重要的元素做了标注。

图4-1BIDevStudio

BIDevStudio最重要的部分如下所示。

●解决方案资源管理器:

解决方案资源管理器窗口用于管理解决方案和项目。

在这个窗口中可以创建和管理所有的对象。

要在项目中增加一个对象,可以右击项目名,然后选择“添加新项”,或者右击一个特定文件夹,然后选择“新建”。

进行上述操作之后,将会启动一个对话框或向导,创建特定的对象了。

●窗口选项卡:

通过窗口选项卡可以在设计器窗口之间快速切换。

每一个当前打开的文件或者对象都有一个选项卡。

如果打开的对象的数目超过了选项卡区域能够容纳的数目,则可以使用选项卡右边的滑动条来浏览其他的窗口。

●设计窗口:

设计窗口是编辑和分析对象的地方。

创建一个新的对象或者在解决方案资源管理器中双击一个对象,将会打开该对象的特定设计窗口,以修改该对象,与该对象交互。

●设计选项卡:

许多对象都有不同的方面,可以对它们进行编辑或者与它们交互。

这些方面在设计器窗口中是通过选项卡来给出的。

●属性窗口:

属性窗口是一个上下文相关的窗口,它显示当前选择项的属性。

属性窗口在VisualStudio中很常见,适用于该开发环境中所执行的任何类型的操作。

例如,如果在解决方案资源管理器中选择一个对象,则在属性窗口中将会显示所选对象的属性(比如对象ID、文件名等等)。

如果在数据挖掘设计器窗口中选择某一列,则在属性窗口中将会显示列的属性(比如名称和数据类型)。

如果所选的项没有属性,则属性窗口将是空的。

●BI菜单:

BI菜单位于主菜单栏的“调试”菜单和“工具”菜单之间,从中可以找到特定于AnalysisServices对象的上下文相关的菜单。

例如,如果打开数据源视图(DataSourceView,DSV)编辑器,则“格式”菜单和DSV菜单将会在这个区域中显示。

●输出窗口:

当构建和部署项目时,输出窗口将显示相关的信息。

如果项目有错误,则可以在输出窗口中查看关于该错误的描述。

注意:

要使操作环境更适合自己的数据挖掘任务,可以按照所喜欢的形式重新组织工作空间。

单击并且拖动任何窗口的标题栏,可以显示窗口悬浮的图标,以帮助悬浮和停靠窗口。

甚至可以将这些窗口彼此叠放,这样,可选择的选项卡将会显示在窗口的下面。

在集成开发环境中选择不同的选项时,可能会显示额外的窗口。

可以关掉当前不再使用的窗口——不要担心,如果需要它们,总是可以从视图菜单中打开它们。

如果想使那些窗口易于使用,而且在屏幕空间上运行短暂时间,则可以在窗口的标题栏中单击图钉图标,这样,当不使用这个窗口时,该窗口将会自动隐藏。

4.1.2脱机模式和即时模式

BIDevStudio有两种工作模式:

脱机模式和即时模式。

具体使用哪一种工作模式有时基于个人的爱好,有时基于个人的需要。

每一种模式都有各自的优点和缺点,重要的是,在使用BIDevStudio时需要理解这两种模式的区别。

1.即时模式

对数据挖掘用户来说,工作在即时模式下是很自然的。

在即时模式下工作时,就直接并持续地连接到AnalysisServices服务器。

当打开一个对象(比如挖掘结构)时,是从服务器中打开该对象。

当改变了对象并且要保存它时,该对象将直接在服务器上改变。

在即时模式下,BIDevStudio项目是一个到服务器上的数据库的链接。

在解决方案资源管理器中,可以看到数据库中的当前所有对象。

如果关闭这个项目,然后重新打开它,将会自动重新连接到该数据库。

如果上次打开该项目时数据库中的对象已经改变了,则再一次打开它时,还能够看到这些改变。

虽然这种模式很直观,也很容易理解,但是在使用时有一些因素还是应该注意的。

最重要的是,它是真正的“即时”。

如果有一个现成的工作模型,需要修改并保存该模型,那么,这种改变立即进行,并且该模型会变成是未处理的,任何针对该模型的查询都无法执行。

除此之外,如果已经打开一个对象,其他用户也可以修改它。

如果已经修改了一个对象并且试图保存它,将会看到一个警告,因为保存对象时会覆盖其他用户已经做出的修改。

只有关闭对象并且重新打开它时,在服务器上的对象改变才能在项目中反映出来。

在数据库中新建或者删除一个对象后,只有在关闭项目并且重新打开它时才能看得到所进行的改变。

即时模式相对于脱机模式来说,一个最大的优点是安全性高。

如果在即时模式下工作,则该模式允许在单一数据库限定的范围工作,同时允许拥有数据库管理员权限的用户创建和修改对象。

下一节将会讲述为什么使用脱机模式要求用户是服务器管理员。

2.在即时模式下使用BIDevStudio

要在即时模式下开始使用BIDevStudio,则按照下面步骤进行操作:

(1)启动BIDevStudio。

(2)在“文件”菜单中选择“打开”,然后选择AnalysisServices数据库,如图4-2所示的对话框将会出现。

(3)在对话框的相应输入框中输入要连接的服务器名和数据库名。

(4)单击“确定”按钮。

如果有服务器管理员的权限,则也可以在服务器上创建新的数据库,所需的操作是选择“创建新数据库”单选按钮,然后指定服务器名和数据库名。

图4-2即时模式下连接到数据库的对话框

3.脱机模式

在脱机模式下工作时,项目包含的文件存储在客户机上。

在这种环境下修改对象时,所作的修改以XML文档的格式存储在硬盘上。

在将一个模型或者对象部署到目标服务器之前,所创建的模型和其他对象不会存储在服务器上,而是存储在客户机上。

这样就允许数据挖掘开发人员或者分析员在将模型部署到真正的服务器之前进行一些操作,设计和测试该模型。

也可以将这些文件放到源控制系统中,以便跟踪对象元数据的改变,并且在一个开发团队中实现共享。

在解决方案资源管理器中右击一个对象,然后选择“查看代码”,就可以查看和编辑这些文件的源代码。

当部署一个项目时,BIDevStudio会对项目中的对象进行验证,并且会创建一个部署脚本,将脚本发送到服务器。

部署的基本单位是整个项目,代表整个AnalysisServices数据库。

当部署一个项目时,这些工具能够部署增量更改。

然而,如果在服务器上有一个与项目设置中的数据库同名的数据库,或者如果要部署来自不同计算机的项目,则该部署将会完全覆盖已有的数据库。

幸运的是,在覆盖已有数据库之前会弹出一个警告对话框。

因为数据库是在部署时创建的,所以,只有服务器管理员才能将脱机模式下的项目部署到服务器上。

4.在脱机模式下使用BIDevStudio

要在BIDevStudio中开始使用脱机模式,按照下面步骤进行操作:

(1)启动BIDevStudio。

(2)首先从“文件”菜单中选择“新建”菜单,然后选择“项目”,将会显示如图4-3所示的“新建项目”对话框。

(3)在“项目类型”窗格中打开“其他语言”节点。

(4)选择“商业智能项目”。

(5)从“模板”窗格中选择AnalysisServices项目。

(6)指定项目的名称,然后单击“确定”按钮。

(7)首先选择“生成”菜单,然后选择“部署”,将项目部署到服务器,创建数据库。

图4-3“新建项目”对话框

默认情况下,项目会部署在localhost服务器,也就是说,该服务器与工具在同一台计算机上。

为了改变目标服务器,首先选择“项目”,然后选择“属性”,以启动“配置属性管理器”对话框。

在这个对话框中,可以创建不同的部署配置,还可以为每一个可能的配置指定目标服务器和数据库的名称,如图4-4所示。

图4-4项目属性对话框

在部署的过程中需要注意的其他重要属性是处理选项和部署模式。

默认情况下,部署功能自动处理已经创建的对象,或者由于项目的改变而变得无效的对象。

处理选项属性控制处理行为。

同样,默认情况下只将来自这些工具的增量更改部署到服务器上。

如果其他客户已经改变了该数据库,或者在服务器上有一个同名数据库,则默认的部署方式会导致错误。

部署模式属性可以控制这种行为。

注意:

可以设置一个属性来改变默认的部署服务器,默认的部署服务器是每次创建一个新的脱机项目时设置的。

如果要改变默认的部署服务器,则需要选择“工具”菜单上的“选项”选项,进入“选项”对话框。

在“选项”对话框中,依次选择“商业智能设计器”|“AnalysisService设计器”|“常规”,然后将默认的目标服务器属性设置为选定的服务器。

这个设置只对新创建的项目起作用,所以仍然需要手动修改之前创建的项目。

5.切换项目模式

有时需要从一种模式切换为另一种模式,例如,要在另一台计算机上快速更新一个以前部署的项目时,或者要将一个数据库的对象元数据保存到源控制中时。

进行这种切换是比较容易的。

最容易的切换是将脱机模式切换为即时模式。

只要按如下步骤操作:

首先打开“文件”菜单,选择“打开”|“AnalysisServices数据库”,然后选择以前部署的数据库。

相反,如果要将即时模式切换为脱机模式,需要在“新建项目”对话框中创建一个新的项目,并且选择“导入AnalysisServices2008数据库”,如图4-3所示。

该操作将启动一个向导,在向导中可以指定服务器和源数据库的名称,并且可以将元数据提取到一个新的项目中。

需要指出的是,如有必要,仍然需要设置部署选项来指出目标服务器和数据库的名称。

注意:

查看解决方案资源管理器中项目的名称,可以确定当前是在即时模式下还是在脱机模式下。

如果当前是即时模式,则项目名称后面的圆括号中会有服务器的名称。

除此之外,所有的窗口选项卡都会有文本(Online)跟在对象名字的后面。

4.1.3创建数据挖掘对象

打开数据库或者项目之后,不管选择哪一种操作模式,在AnalysisServices项目里执行的操作都是相似的。

如果要进行数据挖掘,则需要指定和描述源数据,然后创建挖掘结构和挖掘模型。

4.2设置数据源

AnalysisServices中的两个对象——数据源和数据源视图(DSV)——是数据的接口。

数据源实际上是一个连接字符串,用于描述数据的位置,然而,DSV是一个抽象层,DSV能够修改查看数据源的方式,甚至定义一个模式,在以后的某个时候切换实际数据源。

本节讨论如何设置这些对象,以便在数据挖掘中使用。

4.2.1数据源

数据源是一个非常简单的对象。

它只包含一个连接字符串和一些描述如何连接的附加信息。

但是,数据源的两个问题可能会成为我们学习的绊脚石,如果不理解它们,则在以后学习的过程中很可能会受到挫折。

由于允许在客户端上创建对象,因此这两个问题都将出现,当部署对象时,该对象不能正常工作。

第一个问题是数据位置。

与大多数数据挖掘产品不一样,SQLServer数据挖掘是一个基于服务器的解决方案。

这意味着在设置数据源时,不但客户端(这个客户端是指创建模型的工具所在的计算机)能够访问该数据源,而且服务器(这个服务器是用来处理模型的地方)也能访问该数据源。

例如,如果根据C:

\MyDocuments\Northwind.mdb中的Access数据库构建了一个模型,那么,除非这个文件位于服务器的同一个位置,否则模型将无法处理。

即使这个文件恰好存在,也有可能出问题,因为没有办法知道这个文件是否与本地版本包含同样的数据或者同样的模式。

通常,当对本地数据进行挖掘时,应该使用SQLServer集成服务(SSIS)把当前的数据移到SQLServer数据库中,然后使用BIDevStudio构建挖掘模型。

第二个问题是安全性。

理解用户凭证是非常重要的,用户凭证用来控制从AnalysisServices中访问数据。

当设置连接时,可以选择使用集成的安全性,也就是说,使用账户凭证来访问数据。

也可以考虑选择使用简单的安全性,即要求使用一个指定的用户名和口令来访问数据。

只要源数据库支持集成的安全性,则Microsoft通常推荐使用集成的安全性。

当连接数据库时,不管源数据库支持什么方法,数据源对象都包含附加信息,这些附加信息能够准确地告诉AnalysisServices要使用或者模拟哪一种安全凭证。

创建一个数据源对象有4种不同的模拟选项。

●使用当前用户的凭证

对于通过查询语句来访问的数据源而言,这种方法是最安全的。

选择该选项,AnalysisServices就使用当前的用户凭证访问远程的数据。

但是,在许多的实现方案中,AnalysisServices必须将凭证委派给源数据库计算机。

为了让委派能够正常工作,需要域管理员对其进行配置。

参考有关Kerberos的WindowsServer文档可以了解这个问题的更多信息。

这种方法不能用于在处理AnalysisServices对象时用到的数据源,因为这种方法将会导致不同数据的访问,这取决于是由谁来处理对象。

●使用帐户

当不选择“使用当前用户的凭证”选项时,“使用帐户”选项是次优选择。

“使用帐户”允许指定账户凭证,这个账户凭证将会在访问数据源时使用。

凭证包含一个用户名和口令,存储在AnalysisServices上,所有对这些数据的访问都使用这个凭证。

如果不选择委派,则这个方法是最安全的。

●使用服务帐户

“使用服务帐户”选项使得所有对这些数据的访问都使用这个账户,该账户也是AnalysisServices的账户。

使用这种方法主要用于测试,而不用于产品。

通常,AnalysisServices应该尽可能地在拥有最少权限的账户下运行。

●默认值

“默认值”选项是指使用不同的凭证,具体依赖于如何访问数据源。

如果是为了数据处理而进行访问,则应使用服务账户凭证访问数据。

如果是为了数据查询而进行访问,则应使用当前用户凭证访问数据。

创建MovieClick数据源

要创建一个指向MovieClick数据库的数据源,则按如下步骤进行:

(1)按照附录A中的描述下载MovieClick数据库,然后安装它。

(2)在解决方案资源管理器或者对象资源管理器中右击“数据源”文件夹,然后选择“新建数据源”,以启动数据源向导。

(3)跳过介绍页,在第二页中单击“新建连接”按钮,启动“数据链接”对话框。

(4)输入用于安装数据库的服务器名称,指定安全设置,然后选择MovieClick数据库。

(5)单击“确定”按钮,退出“数据链接”对话框,单击“下一步”,转到模拟信息页。

(6)输入用户名和口令(当访问MovieClick数据库时,AnalysisServices将会使用该用户名和口令),然后单击“完成”按钮,关闭向导。

4.2.2使用数据源视图

数据源视图(DataSourceView,DSV)是数据在客户端的一个抽象视图,这也是建模工作开始的地方。

在DSV中,可以选择、组织、浏览以及(在某种意义上来说)操作数据源中的数据。

其实,DSV是告诉AnalysisServices希望如何查看数据源中的数据。

因为对象存在于AnalysisServices服务器中,而不是关系数据源中,所以即使对关系数据库服务器只有读的权限,也可以执行这种类型的操作。

为数据挖掘目的而创建一个DSV时,要确定的最重要的表是事例表。

事例表包含要分析的事例。

除此之外,还需要引入一些关系表,比如嵌套表或者查找表,这些表包含事例的附加信息。

1.创建MovieClick数据源视图

要从MovieClick数据源中创建一个DSV,则按如下步骤进行:

(1)在解决方案资源管理器或者对象资源管理器中右击“数据源视图”文件夹,然后选择“新建数据源视图”,以启动数据源视图向导。

(2)跳过介绍页,然后在选择数据源向导页中,MovieClick数据源会默认被选中;单击“下一步”继续。

(3)名称匹配页对于导入的数据源不起作用,所以单击“下一步”继续。

这一页只有当源数据库中的关系没有指定时才会显示,并且允许基于表的键列来选择如何自动创建关系。

因为导入的MovieClick数据库既没有关系也没有键,所以它使用的算法不起作用。

(4)在选择表和视图向导页中,单击>>按钮,将“可用对象”列表中的所有表移到“包含的对象”列表中。

(5)单击“下一步”按钮继续,然后单击“完成”按钮,退出DSV向导,以显示DSV设计器。

(6)右击MovieGenre表的Movie列,并选译“设置逻辑主键”。

(7)将一个关系从Movies表的Movie列拖动到MovieGenre表的Movies列。

连接之后,在设计器窗口中单击右键,然后选择“排列表”,把表排列整齐,更便于观看。

完成这些操作之后,DSV应该如图4-5所示。

图4-5完整的MovieClick数据源视图

DSV设计器最初显示的是包含在数据源中的表和这些表之间的关系。

如果已经熟悉了数据,并且这些数据现在适合于进行数据挖掘,就可以开始创建挖掘模型。

但是,如果这些条件没有达到(通常是这样),则可以使用DSV设计器来浏览数据,并且将这些数据改为模型所需要的形式。

最初,可以在模式中对表和列进行简单的注释,以便于理解。

也可以为这些对象添加描述信息,甚至可以改变对象的名称,使它更便于理解和支持。

例如,如果有一个表NWSFY03,可以把它重命名为FiscalYear03NorthwestSales,或者将列014重命名为Quantity。

只要选择对象,然后在属性窗口中输入描述和友好的名称即可。

除此之外,如果在源数据库中还没有指定表之间的关系,则可以在这里指定。

只需从一个表的外键列,将一条关系线拖到另一个表的主键列,就可以完成关系的指定。

所有这些修改只发生在DSV中,并且不会以任何方式影响源数据。

注意:

如果事例表和嵌套表之间的关系不存在于关系数据库中,则必须在DSV中指定该关系,否则将无法将嵌套表添加到模型中。

除了可以利用DSV对模式进行注释外,DSV还允许创建命名计算、命名查询和视图,并且在数据透视图(pivotchart)中交互式地浏览数据。

2.使用命名计算

在DSV中,命名计算列是表中附加的虚列。

这个功能可以在自己的数据中挖掘派生信息,而不需要改变源数据。

命名计算列包含一个名称、一个包含计算的SQL表达式和一个可选的描述。

计算可以是任何有效的SQL表达式。

如果对SQL表达式不熟悉,则可以学习下面的一些表达式类型,这些表达式在许多数据挖掘项目中都会用到。

(1)算术操作

标准的SQL支持+、-、×、/和%(取模)。

例如,可以利用下面的公式来创建一个名为Profit的命名计算列:

[SalesPrice]–[ItemCost]

(2)数学函数

数学函数是非常有用的,特别是当列中的数据不遵循统一分布时。

在所有的SQL函数中,ABS、LOG、SIGN和SQRT用得特别多。

下面有两个示例。

●要以对数的方法来规范化一个以指数级别增加的变量,可以使用如下函数:

LOG([SalesQuantity])

●要创建一个标志,来指出实际费用是高于预算还是低于预算,可以使用如下函数:

SIGN([ActualExpenses]–[BudgetedExpenses])

(3)组合表达式

通常,想要测试的假设条件依赖于一个变量,这个变量是已有两个变量的组合。

例如,可能对一个人是否结婚或者是否有孩子不感兴趣,但是这两个属性的组合可能提供很有价值的信息。

针对这种情况的一个组合表达式如下所示:

[MaritalStatus]+''+[HasChildren]

(4)CASE表达式

在数据挖掘中,CASE表达式是一种非常灵活的方式,用于创建有意义的变量。

CASE表达式允许根据对一个或者多个条件的评估来指派结果。

运用CASE可以达到下面的目的:

改变值的标签,手动离散化列,减少有效状态的个数,将一个属性从一个嵌套表中转换为一个事例级属性。

下面是几个范例。

●要改变值的标签,可以使用下面的表达式:

CASE[Category]

WHEN1THEN'Food'

WHEN2THEN'Beverage'

WHEN3THEN'Goods'

ENDCASE

●要手动离散化列,可以使用下面的表达式:

CASE

WHEN[Age]<20THEN'Under20'

WHEN[Age]<=30THEN'Between20and30'

WHEN[Age]<=40THEN'Between30and40'

ELSE'Over40'

END

●要减少有效状态的个数,可以使用下面的表达式:

CASE[Marital

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 农林牧渔 > 林学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1