数据挖掘原理与应用.docx

上传人:b****2 文档编号:23057858 上传时间:2023-04-30 格式:DOCX 页数:32 大小:1.07MB
下载 相关 举报
数据挖掘原理与应用.docx_第1页
第1页 / 共32页
数据挖掘原理与应用.docx_第2页
第2页 / 共32页
数据挖掘原理与应用.docx_第3页
第3页 / 共32页
数据挖掘原理与应用.docx_第4页
第4页 / 共32页
数据挖掘原理与应用.docx_第5页
第5页 / 共32页
点击查看更多>>
下载资源
资源描述

数据挖掘原理与应用.docx

《数据挖掘原理与应用.docx》由会员分享,可在线阅读,更多相关《数据挖掘原理与应用.docx(32页珍藏版)》请在冰豆网上搜索。

数据挖掘原理与应用.docx

数据挖掘原理与应用

数据挖掘原理与应用

SQLServer2005数据库》

 

第12章SQLServer集成服务数据挖掘

在典型的数据挖掘项目中,最消耗资源的步骤是数据准备。

创建和调整挖掘模型可能只占全部项目工作量的20%。

然而,在创建这些模型之前,数据的格式必须是正确的。

数据准备由多个步骤组成,包括数据收集、数据清理和数据转换。

我们可以使用SQL脚本来准备数

据,但是用来准备数据的更好的工具是SQLServer集成服务(SSIS),该工具以前称为数据转换服务(DataTransformationServices,DTS)。

SSIS提供了工作流的环境,可以使用该环境来构建数据转换包。

可以从不同的数据源中提取数据,然后对该数据执行一系列操作。

在SSIS

Toolbox中以组件的形式预定义和提供了这些操作。

在对数据进行转换后,可以直接在SSIS

环境中处理数据挖掘模型或者执行预测查询。

在本章中,首先将介绍SSIS然后将论述如何在SSIS环境中执行数据挖掘的任务。

在本章中,将学习:

•SSIS的基本概念,包括控制流和数据流

•在SSIS中执行与数据挖掘相关的转换和任务,包括这些转换和任务的用法

•基于术语“提取转换”和术语“查找转换”的文本挖掘解决方案

12.1SSIS介绍

SSIS首先是在1997年的SQLServer7.0中引入的,当时它的名称为数据转换服务(DTS)。

SSIS属于ETL产品家族,ETL代表提取(Extraction)、转换(Transformation)和加载(Loading)。

现在,越来越多的企业都有数据仓库。

ETL是将来自OLTP数据库的数据定期加载到数据仓库中必不可少的工具。

在SQLServer的前两个版本——SQLServer7.0和SQLServer2000中,SSIS主要集中于提取和加载。

通过使用SSIS,可以从任何数据源中提取数据以及

将数据加载到任何数据源中。

在SQLServer2005中,对SSIS进行了重新设计和改进。

SSIS提供控制流和数据流。

控制流也称为工作流或者任务流,它更像工作流,在工作流中每个组件都是一个任务。

这些任务是按预定义的顺序执行的。

在任务流中可能有分支。

当前任务的执行结果决定沿哪条分支前进。

数据流是新的概念。

数据流也称为流水线,主要解决数据转

换的问题。

数据流由一组预定义的转换操作组成。

数据流的起点通常是数据源(源表);数据

流的终点通常是数据的目的地(目标表)。

可以将数据流的执行认为是一个流水线的过程,在该过程中,每一行数据都是装配线中需要处理的零件,而每一个转换都是装配线中的处理单丿元。

图12-1显示了SSIS设计'器。

可以通过启动BusinessIntelligeneeDevelopmentStudio然后创建一个IntegrationServices项目来调用SSIS设计器。

在左边有一个工具箱窗口。

工具箱窗口包含预定义的控制流任务和数据流转换。

中间的视图窗格包含4个视图:

控制流、数据

流、事件处理程序和包资源管理器。

控制流视图提供了一个设计环境,在这个设计环境中可以使用工具箱中与控制流相关的项来构建控制流。

数据流视图也提供了一个设计环境,在这个设计环境中可以使用工具箱中与数据流相关的项来构建数据流。

在事件处理程序视图中,可以定义由特定的执行事件触发的后续响应操作。

包资源管理器视图提供了流的树型视图。

2询%目丿■•二赫:

f-■1□■屮—當」

'Ifzl'lJ|L/ihti■

|Ut|5Q/爭詡dIIR

图12-1SSIS设计'器

12.1.1理解SSIS包

包(package)是SSIS项目中基本的部署和执行单元。

SSIS任务执行的所有工作都发生在

包的上下文中。

SSIS包是SSIS流的容器。

可以通过以下方式来创建SSIS包:

在IntegrationServices项目文件夹中右击“SSIS包”文件夹,然后选择“新建SSIS包”菜单项。

SSIS项目可以包含多个包。

包只包含一个控制流,而该控制流可以包含一个或者多个数据流。

除了控制流和数据流,包还包含了SSIS连接和包的变量。

可以有不同作用域的变量,例如,作用域为整个包的全局变量或者作用域为任务序列的局部变量。

在托盘中显示了连接和变量,如SSIS设计器底部所示(参见图12-1)。

连接可以连向关系数据库,也可以连向AnalysisServices数据库。

12.1.2任务流

SSIS包包含一个控制流,该控制流由一组任务组成。

这些任务定义了包的工作,例如,加载数据、执行SQL语句、处理脚本或者调用其他过程。

在工具箱中列出了这些任务。

可以通过以下方式将任务加入包中:

从工具箱中拖动该任务,然后将它释放到包的设计器中。

在任务流中,包通常包含多个任务。

多个任务是按优先权约束的顺序来进行组织的。

优先权约束按以下顺序连接两个任务:

执行第一个任务的结果决定是否运行第二个任务。

可以在工作流中使用优先权约束来创建条件分支。

可以将多个优先权约束进行组合,然后将其作为一个约束来求值。

1.在SSIS中的标准任务

表12-1列出了SSIS任务流中的一些预构建的任务及其描述信息。

除了在下表中所列出的任务之外,SSIS还提供了简单的API,可以使用这些API来开发自己的任务。

一旦注册了任务,则在工具箱中将会出现这些任务,然后可以在任务流中像所有预构建的任务一样使用这些任务。

表12-1SSIS的任务

执行包任务执行进程任务执行SQL任务文件系统任务FTP任务

描述

将来自文本文件的大量数据加载到SQLServer表中支持在不同类型的数据源之间进行数据的复制和转换。

一个数据流任务包含一条数据流流水线运行子包

将程序或者批处理文件作为包的一部分来运行在包的执行期间运行SQL语句,然后有选择地保存这些查询的结果执行文件系统操作

从远程服务器或者Internet的某个位置下载数据文件,并且将这些数据文件作为包的

工作流的一部分

消息队列任务

在SSIS包之间使用消息队列来发送和接收消息

脚本任务使用脚本来执行在预构建的SSIS任务中不可用的函数。

通过使用Script任务,可以在MicrosoftVisualStudioforApplications(VSA)环境中使用VisualBasic.NET来编写脚本

XML任务合并、过滤和转换XML文档中的数据

2.容器

容器(container)是向包提供结构的SSIS对象。

每个包都有一个容器,用来存储包的流。

包的容器可以包含其他类型的容器,例如序列容器、Foreach循环容器和For循环容器,这些

容器都可以在控制流工具箱中获得。

可以在这些容器中定义子流。

容器丰富了控制流的运行时执行模型。

例如,并不是所有的任务都是顺序执行的。

在Foreach循环容器内部的子流将

会基于容器中定义的迭代器而多次执行。

3.调试

对SSIS控制流进行调试是在SQLServer2005中引入的新特性。

当在设计器中选择了一个任务时,只要按下F9就可以设置断点。

通过调试,可以在执行期间检查包的变量的值以及任务的状态。

断点可以基于事件来设置。

例如,可以基于一个任务的以下事件来设置一个或者多个断点:

•OnPreExecute

•OnPostExecute

•OnError

•OnWarning

•OnProgress

当SSIS的运行时遇到了一个断点事件时,SSIS的运行时会在包的执行期间暂停。

这与在VisualStudio中调试C#代码类似。

4.研究一个控制流示例

图12-2显示了一个简单的控制流示例。

它以FTP任务开始,该FTP任务用于下载已压缩的数据文件。

一旦下载完这些文件,运行时就会到达Foreach循环容器,在该容器内部有两个任务:

执行进程任务(该任务调用unzip应用程序来解压缩数据文件)和大容量插入任务(该任务将数据文件的数据插入到SQLServer中)。

当解压缩完数据文件并且将数据文件的数据加

载到SQLServer中时,循环会停止。

如果在循环期间发生了错误,则该控制流将执行发送邮件任务:

向DBA发送电子邮件。

如果正确地执行了每个任务,则该控制流将执行SQL任务:

在新的数据集上创建一些视图。

断点是在执行SQL任务的OnPreExecute事件上设置的,以

便DBA在创建视图前可以对数据加以验证。

图12-2控制流的示例

12.1.3数据流

控制流是出现较早的概念,因为它从SSIS的第一个版本开始就已经存在了,而数据流是在SQLServer2005中才引入的新概念。

数据流是专门处理数据操作的工作流。

数据流也称为流水线。

可以将数据流认为是装配线,该装配线包含了顺序执行的多个操作。

在数据流中的每个节点都称为转换。

数据流通常以源转换开始,以目标转换结束。

在这两个转换之间,预定义的数据流转换被依序应用到数据上。

一些转换是同步的,例如,查找、条件性拆分和数据转换。

这些同步的转换可以并行执行。

一旦已经将转换应用到数据行上,则下一个转换可以开始处理该数据行,而无需等到上一级转换处理完整个数据集。

一些转换是异步的,例如聚合和排序。

这些转换必须从前面的输出中获得所有的行,从而可以处理和产生输出,用于后续转换。

除了预构建的转换清单,SSIS还提供了一些API,可以使用这些API来构建自己的数据流转换。

例如,可以构建NumericProcessing转换来将数学计算和转换应用到流水线数据上。

数据流总是包含于任务流中。

有一个特殊的任务,其名称为数据流任务,该任务是用于容纳数据流的容器。

在构建数据流之前,必须将数据流任务加入到设计器中。

1.转换

任务是任务流的基本组件,而转换是数据流的基本组件。

转换是预定义的数据操作。

以将转换视为装配线中的机器,用于对输入数据进行操作。

表12-2显示了在SSIS数据流环

境中流行的转换列表。

表12-2SSIS的转换

转换

描述

聚合”转换

“执行聚集,例如average、sum和count

“字符映射表”转换

将字符串函数应用到字符数据上

“条件性拆分”转换

基于指定的标准来将数据行路由到不同的输出

“复制列”转换

将输入列的副本添加到转换的输出中

“数据转换”转换

将列的数据类型转换为不冋的数据类型

“派生列”转换

使用表达式来生成从现有列中派生的新列

“处理维度”转换

处理AnalysisServices的维

“模糊分组”转换

通过以下方式来执行数据清理的任务:

首先识别可能重复的数据行,然后选择规范的数据行来用于对数据进行标准化

“模糊查找”转换

在引用表中使用模糊匹配来查找值

“查找”转换

在引用表中使用精确匹配来查找值

“合并”转换

合并两个已分类的数据集

“合并联接”转换

使用FULL、LEFT或者INNERjoin来连接两个已分类的数据集

“多播”转换

将数据集分布到多个输出中

“分区处理”转换

处理AnalysisServices的划分

“透视”转换

创建规范表的较低规范化版本

“排序”转换

对流水线的数据进行分类

“UnionAll”转换

创建多个数据集的并集

逆透视”转换

“创建不规范表的较规范版本

2.查看器

查看器是为了调试数据流而设计的。

可以在执行期间使用查看器来查看流水线中的流。

可以将查看器附加在转换之间的连线上。

要增加查看器,可以在连线上右击,然后选择“数据查看器”菜单项。

默认的查看器是网格图。

也可以增加直方图,散点图和圆柱图作为图形查看器。

如果这些预定义的查看器还不能满足您的需求,则您甚至可以构建自己的查看器。

3.研究一个数据流示例

图12-3显示了一个数据流的示例。

该数据流以OLEDB

Source转换开始,该转换加载包含零售销售事务的事实表。

第二个转换是“查找”,该转

换从客户维表中查找客户姓名中的名和姓。

这两列被加入到流水线的数据中。

下一个转换是

“派生列”,该转换基于姓名中的名和姓来创建新的FullName列。

然后,数据到达“聚合”转换,该转换累加每个客户的总销售额。

基于销售额,“条件性拆分”转换将客户拆分为两个目标表:

一个表对应重要的客户,而另一个表对应普通的客户。

图12-3数据流的示例

12.2在SSIS环境中进行数据挖掘

SSIS提供了流的环境,在该环境中可以通过一组内置的任务和转换来进行数据提取、加载和转换。

正如您已经学习的,在数据挖掘项目中最消耗资源的工作是数据清理和转换。

SSIS自然

可以作为数据挖掘项目很好的补充。

可以使用这个强大的工具来从不同的源中加载数据,将这些数据连接在一起,规范化列的值,移除无用的记录,替换缺失值,以及将数据分成训练数据集和测试数据集等。

SSIS不仅仅作为数据挖掘的ETL工具,SSIS实际上还在控制流和数据流环境中提供了一些内置的数据挖掘组件。

特别地,在表12-3中列出了一些专门用于数据挖掘的任务和转换。

表12-3用于数据挖掘的任务和转换

数据挖掘的任务或者转换

描述

数据挖掘查询任务

基于数据挖掘模型来运行预测查询

AnalysisServices处理任务

处理需要分析的对象,例如立方体、维、划分和数据挖掘模型

AnalysisServices执行DDL任务

运行数据定义语言(DataDefinitionLanguage,DDL)代码,这些代码可以创建、修改、删除和处理需要分析的对象

数据挖掘查询转换

执行数据挖掘预测查询

数据挖掘模型定型转换

使用流水线数据作为输入来处理数据挖掘模型

字词提取转换

处理文本列来提取关键术语(单个词或者较短的名词短语)。

提取的术

语可以用来作为字词查找转换的字典

字词查找转换

从输入的文本列中基于字典来搜索和提取关键术语。

字词查找的结果可以用作文本挖掘的训练数据

12.2.1数据挖掘任务

在本节中,我们将更详细地介绍一些与数据挖掘相关的任务。

1.数据挖掘查询任务

数据挖掘查询任务用于执行数据挖掘的查询,主要是执行SSIS控制流中的预测查询。

图12-4显示了对话框的“挖掘模型”选项卡,该对话框用于编辑数据挖掘查询任务的属性。

在该选项卡中,首先将连接指定到活跃的AnalysisServices数据库。

然后必须指定查询所基于的挖掘结构和挖掘模型。

图12-5显示了数据挖掘查询任务的“查询”选项卡。

在该选项卡中,必须输入数据挖掘查询语句。

可以直接在文本框中编写查询语句,也可以单击“生成新查询”按钮来调用预测查询生成器。

预测查询生成器提供了图形化的环境,在该环境中可以构建DMX查询。

在第3

章中已经学习了如何使用该工具。

yr*->ui..rir.4

i.11).111Um■申申Trt*

THIifciiv^1-h.^-l

3rtn«w*iv*t

图12-5数据挖掘查询任务——构建查询

DMX查询可以包含一些参数。

这些参数可以映射到SSIS变量。

例如,您可能希望编写

一个查询来返回一些客户,这些客户拥有黄金会员卡的概率超过给定的值。

该给定的值可以通过SSIS变量Probability来设置。

“结果集”选项卡提供了一个选项,该选项可用于将查询返回的结果映射到一个SSIS变

量,比如一个集合变量

图12-6显示了数据挖掘查询任务的“输出”选项卡。

在这个选项卡中,可以指定连接的目标数据库,在该目标数据库中将保存查询结果。

它可以是与源数据相同的数据库,也可以是不同的数据库。

您还需要对结果表进行命名。

图12-6数据挖掘查询任务指定输出

注意:

DMX查询可以产生嵌套的结果,例如,如果在Select子句中使用PredictHistogram函数,则数据挖掘查询任务将自动平坦化嵌套行集,然后在一个表中插入查询结果。

2.AnalysisService处理任务

AnalysisServices处理任务用于处理AnalysisServices数据库中的主要对象。

这些对象可

以是维、立方体、挖掘结构和挖掘模型。

图12-7显示了该任务的编辑器。

可以使用“添加”按钮来选择对象,也可以在“处理选

项”列中指定处理的选项和设置

图12-7AnalysisServices处理任务

在预测查询生成器中执行DMX查询

除了DMX预测查询,还可以在预测查询生成器中执行其他类型的DMX查询。

例如,

可以输入以下的内容查询:

Select*frommyAssociationModel.ContentWhereNode_Type=7

也可以调用存储过程:

Callmystoreproc

实际上,也可以在数据挖掘查询任务中指定DMX的Creation语句和InsertInto语句。

可以使用该任务来创建和处理挖掘模型。

3.AnalysisService执行DDL任务

DDL(数据定义语言)可以采用XML格式来描述。

在AnalysisServices2005中,所有的对象(挖掘模型、挖掘列、维、立方体和角色等等)都是使用DDL来定义的(在第14章中将学习DDL的基本概念)。

除了对象的定义,DDL还包含了一组命令。

这些命令使创建、更新、处理和删除对象变得容易。

当使用图形化的工具(例如挖掘模型编辑器)来创建挖掘模型时,这些工具会产生发送给

服务器的DDL脚本

如果不使用数据挖掘编辑器来创建/更新这些对象,则可以复制或者编写这些DDL脚本,然后通过执行DDL任务来执行它们。

图12-8显示了执行DDL任务的编辑器。

首先,必须指定与AnalysisServices的连接。

然后单击SourceDirect属性,该属性调用用来显示DDL命令的文本框。

在图12-8中的DDL用于在AdventureWorksDW数据库中创建挖掘结构DMCustomers。

图12-8AnalysisServices执行DDL任务

4.一个使用数据挖掘的控制流示例

图12-9显示了使用数据挖掘查询任务的控制流示例。

控制流首先通过FTP任务下载新客户的数据集,然后使用大容量插入任务将数据加载到SQLServer数据库中。

如果在数据加

载期间发生了错误,则它会向DBA发送电子邮件。

如果数据加载成功,则它会执行数据挖掘查询任务,该任务用于查找那些对特殊的促销产品可能感兴趣的客户。

预测的结果会保存在表中。

在预测之后,它会给可能感兴趣的客户发送电子邮件。

图12-9使用数据挖掘查询的控制流

1222数据挖掘转换

在本节中,我们将更详细地论述与数据挖掘相关的转换。

1.数据挖掘模型定型转换

数据挖掘模型定型转换(简称DM定型转换)用于在数据流环境中处理挖掘结构及其相关的挖掘模型。

AnalysisServices处理任务也可以处理挖掘模型,但是必须在任务中指定输入表。

在执行

期间,AS服务器从存储了训练数据的源表中提取数据。

然而,在数据流环境中,DM定型转

换在执行期间将数据从流水线推到AnalysisServicesAS服务器以推的模式获得训练数据。

在将流水线数据发送给AS服务器之前,DM定型转换以XML行集的格式对该数据进行封装。

图12-10显示了DM定型转换的属性对话框的“连接”选项卡。

在该选项卡中,可以指定到ASServer数据库的连接,然后选择您希望使用流水线数据来处理的挖掘结构。

也可以使用“新建”按钮来创建新的挖掘结构。

单击该按钮后会启动数据挖掘向导。

在该向导中,对模型创建过程的处理方式与在数据挖掘编辑器环境中的处理方式相同。

然而,还存在一些不同的地方。

首先,列是来自流水线,而不是来自关系表。

某些特性(例如,自动

检测内容类型和相关建议)不可用。

这是因为这些特性需要对输入数据进行扫描和采样,而在流水线环境中这些操作是不可行的。

图12-11显示了DM定型转换的“列”选项卡,在该选项卡上可以指定流水线的列和挖

掘结构的列之间的映射。

在默认情况下,该工具会基于列名自动进行映射。

提示:

虽然DM定型转换支持模型创建,但是对模型进行编辑(比如改变模型的参数)却相当困

难。

一种解决方案是在相同的解决方案中拥有两个BI项目:

SSIS项目和AS项目。

在这种情

况下,可以在AS项目中使用挖掘模型编辑器,从而获得对于挖掘模型的完整编辑功能。

2.数据挖掘查询转换

顾名思义,数据挖掘查询转换(简称DM查询转换)是用于执行数据挖掘查询的转换。

在第2章中,已学习了不同类型的DMX查询,包括预测、内容、模型创建和模型训练。

在这些查询中,预测查询是最常见的。

要执行预测查询,需要训练过的挖掘模型和输入数据集。

在流水线环境中,输入数据集是从流水线推来的。

DM查询转换将来自流水线的输入数据封装为XML行集,然后通过

XML/A协议将它们发送给AS服务器。

AS服务器执行查询,然后将XML结果返回给该转换。

然后,该转换解析该结果,再将解析后的结果推给流水线,以便下一个转换进行处理。

当输入数据比较大时,该过程会以块的方式来处理:

每次将一组行发送给AS服务器来进行预测。

图12-12显示了该转换的“挖掘模型”选项卡,在该选项卡上将连接指定到活跃的AS

服务器的数据库,还必须选择挖掘结构和它的模型之一。

图12-12DM查询转换一一“挖掘模型”选项卡

在该转换的“查询”选项卡上可以输入DMX查询。

可以手动编写查询,也可以单击“生成新查询”按钮来启动预测查询生成器。

预测的输入表是流水线的输入,表示为@InputRowset。

DMX查询结果可以包含嵌套的结果,例如,在Select语句中使用PredictionHistogram函数。

在这种情况下,将会自动平坦化嵌套行集

在SQLServer2005中,SSIS数据流本身不支持嵌套行集。

这一点会给数据挖掘的训练和预测增加技术上的挑战,因为它可能需要嵌套的输入,然后产生嵌套的输出。

为了解决这个问题,DM查询转换在有嵌套行集时会自动平坦化结果。

然而,对于嵌套的输入,问题更大。

当模型或者查询需要嵌套的输入时,推荐使用DM定型任务和DM查询任务。

3.数据流示例

图12-13显示了用于模型训练的数据流示例。

它以OLEDB数据源转换开始,该转换选择FoodMartCustomer表。

下一个转换是派生列转换,该转换创建了新的列Age,该列是从Birthdate列中派生的。

一旦将新的列加入到流水线中,就会将数据发送给DM定型转换,该转换并行地处理挖掘结构及其相关的挖掘模型。

图12-13用于模型训练的数据流示例

图12-14显示了使用DM查询转换的数据流。

流水线以OLEDB源转换开始,该转换加载NewCustomer表。

下一个转换是派生列,该转换添加从Birthdate列中派生的Age列。

三个转换是DM查询,该转换使用已训练的决策树模型来为每个新的客户预测最有可能拥有的会员卡。

预测的结果会发送给条件性拆分转换,该转换基于会员卡的类型将数据分成3个

流水线分支。

左边的分支只包含金卡会员,中间的分支只包含银卡会

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

当前位置:首页 > 考试认证 > IT认证

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

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