数据挖掘请求算法
数据挖掘任务是SSIS中一个很重要的任务,它的思想来源于一些算法。数据挖掘请求运行数据挖掘请求,并将结果输出到数据流。它还能够添加一些预测新列,一些应用场合以下列举:数据库
涉及到的算法有:服务器
模糊排序和查找测试
模糊排序task能够找出数据中可能重复的行,例如能够找出包含“Main St.”和“Main Street”的两行而后将他们合并成一行。模糊查找任务能够检查数据输入并清除脏数据。模糊查找任务一般放在查找任务以后,查找任务找到匹配数据,而后经过模糊查找没有匹配的数据。.net
查找orm
查找转换任务的功能相似于SQL Server 2000中的Data Pump任务。例如,若是数据中有一列ZipCode来自于导入数据中的两列State和City,在映射表中可使用查找转换。在SQL Server 2000中这种功能很笨拙,必须使用join关联查找这样会使运行速度减慢。如图4-25是查找任务的编辑界面。blog
图4-25 排序
合并ip
合并转换能够将两个路径中的输入数据合并成一个输出。这种转换相似于Union All转换,它有一些限制:资源
编辑这种task,确保在两个路径中的数据时一致的,选择列的时候会弹出对话框提示数据合并到路径1仍是路径2,若是选择合并到路径1,而后链接路径2。这样选择以后如图4-26最终将会从一个路径映射到另外一个路径,有些路径的数据也能够忽略。
图4-26
链接合并
SSIS的一个目标就是使用任务,尽可能保证不写任何代码,一个典型的例子就是链接合并。这种合并能够将两个输入进行内链接或者外链接而后选择性地输出。例如,在一个数据流中存储着包含EmployeeID的人力资源信息,在另外一个数据流中存储着工资清单信息,能够对这两个路径进行链接,从人力资源信息中取得姓名,从工资清单信息中取得员工工资,而后从一个路径中输出。如图4-27,能够看到经过链接合并分别缺的员工名字和入职日期。
图4-27
注意:若是两个输入路径在同一个数据库,在OLE DB数据源中进行数据链接操做可能效率更高,若是在不一样的数据库中可能效率后受到影响。这种链接合并在两个数据不是同一个数据库中或者不想编写代码时会颇有用。
多点传送Multicast
如同它的名字同样多点传送能够将一个路径中的数据输出到多个路径,如图4-28你可能会使用这种转换将数据输出到多个路径中。编辑这种task,将它和输入源链接,而后将它和多个Destination链接,除了task的名字以外,它没有特别的编辑选项。
图4-28
注意:多点传送相似于Split 转换,不一样的是多点传送把全部的行都输出,Split将有条件地输出部分行。
OLE DB命令
OLE DB命令对数据流中的数据行执行一个OLE DB命令。它针对数据表中的每一行进行更新操做,能够事先将要更新的数据存放在表中。或者针对一个有输入参数的存储过程,能够将这些参数存放在一个数据表中,不用每次都输入参数。
百分比抽样和行抽样Percentage and Row Sampling
百分比抽样和行抽样能够从数据源中随机选择一组数据。这两种task均可以产生两组输出,一组是随机选择的,另外一组是没有被选择的。能够将这些选择出的数据发送到开发或者测试服务器上。这个Task的最合适的应用是创建数据挖掘模型而后,使用这些抽样数据来验证这个模型。
编辑这种task,选择要抽取的行数或者 百分比,如图4-29。百分比抽样按百分比从数据源中随机选择数据,行抽样从数据源中随机选择具体的行数。能够对选中的数据和未被选择的数据命名。最后一个选择项是随机取样的参数。若是选择一个固定的参数,每次输出的结果是同样的,若是保持默认设置,就是不选择,每次将输出不一样的数据。
图4-29
透视和逆透视
这个和T-SQL中的PIVOT和UNPIVOT的做用是同样的。数据透视转换能够将数据规范或使它在报表中更具可读性。数据的输出相似于OLAP中的数据输出和报表服务中的数据输出。下面的 表展现销售员工和天天的销售量。
转换后的数据如图
逆透视数据的功能和这个恰好相反。
数据行数
数据行数转换只是简单地计算数据流中的数据行数而后输出到一个变量中。经常使用的是将行数写到邮件中,而后将邮件发送给使用者报告转换了多少行数据。或者根据这个数据行数进行判断,进而进行相应的操做。
代码组件
代码组件容许编写代码充当转换transforms,数据源source,目的destination。使用代码组件能够完成下面的任务:
代码组件能够做为多种输出的数据源,能够选择在运行时更加高效地编译。
代码组件容许编写代码充当转换transforms,数据源source,目的destination。使用代码组件能够完成下面的任务:
代码组件能够做为多种输出的数据源,能够选择在运行时更加高效地编译。
渐变维度(Slow Change Dimesion)
Dimension修改能够更新或者修改数据仓库中的一个Dimension。使用修改向导,能够产生全部的更新和新建dimension任务。曾经这样的任务对于DTS开发人员来讲是很繁琐的,如今只须要几分钟就能够完成。
排序
排序转换容许对数据流中的数据按照某一列进行排序。这是五个经常使用的转换之一。链接数据源打开编辑界面,编辑这种任务。不想设置为排序列的字段不要选中,默认状况下全部列都会选中。如图4-30,按照ProductID排序,并将全部列输出。
图4-30
在底部的表格中,能够设置输出列的别名,是否按照列来排序。Sort Order列显示列将会第一排序,第二排序仍是第三排序。双击列去除重复的排序列。
关键词抽取和查找Term Extraction and Lookup
关键词抽取和查找从数据集中抽取关键词。例如,可使用这种task从一系列文章中抽取关键词。另外一个功能是分析公司内部电子邮件内容。这种任务目前只支持英文关键词抽取。
在关键词抽取中能够指定是抽取名词仍是名词词组。例如“bicycle”会被抽取可是“the bicycle”将不会被抽取。这种任务有两种输出,关键词和抽取的结果。关键词是要匹配的关键词,抽取结果是成功匹配的次数。
关键词抽取能够输出预先匹配的行。例如,将一个邮件系统中的信息记录到数据库中,能够和邮件系统组合,自动记录有瑕疵的产品。将结果经过一个链接管理器指向一个表。
联合全部Union All
联合全部task的功能和合并正好相反,它将多个数据源中的合并成一个结果集。例如,如图4-31,将两个XML数据源中的数据合并成一个输出而后将数据送入到关键词抽取任务中。
图4-31
编辑这种转换,首先将第一个数据源链接到task而后将其余数据源链接到这个task。打开编辑界面,保证列被正确映射,DDIS将会自动适应是否正确映射。例如,一个输入字符是20个字符,另外一个是50,出书将会是一个多于50个字符的列。
下一篇随笔中,将用一个例子来具体说明怎么使用转换任务。