关闭 x
IT技术网
    技 采 号
    ITJS.cn - 技术改变世界
    • 实用工具
    • 菜鸟教程
    IT采购网 中国存储网 科技号 CIO智库

    IT技术网

    IT采购网
    • 首页
    • 行业资讯
    • 系统运维
      • 操作系统
        • Windows
        • Linux
        • Mac OS
      • 数据库
        • MySQL
        • Oracle
        • SQL Server
      • 网站建设
    • 人工智能
    • 半导体芯片
    • 笔记本电脑
    • 智能手机
    • 智能汽车
    • 编程语言
    IT技术网 - ITJS.CN
    首页 » SQL语言 »SSIS中的容器和数据流—数据转换续

    SSIS中的容器和数据流—数据转换续

    2011-04-19 09:18:00 出处:ITJS
    分享

    在上一篇随笔中列举了部分Data Flow中的数据转换任务,这里继续剩余的转换任务。 

    数据挖掘请求

    数据挖掘任务是SSIS中一个很重要的任务,它的思想来源于一些算法。数据挖掘请求运行数据挖掘请求,并将结果输出到数据流。它还可以添加一些预测新列,一些应用场合如下列举:

    根据已知的一些列,例如子女个数,家庭收入,配偶收入预测产生一个新列:这个人是否拥有住房 根据客户购物卡预测客户的购买意向 可以填充用户的调查问卷上没有填写的空白栏

    涉及到的算法有:

    微软时序算法 微软决策树算法 微软线性回归算法 贝叶斯算法

    模糊排序和查找

    模糊排序task可以找出数据中可能重复的行,例如可以找出包含“Main St.”和“Main Street”的两行然后将他们合并成一行。模糊查找任务可以检查数据输入并清除脏数据。模糊查找任务通常放在查找任务之后,查找任务找到匹配数据,然后通过模糊查找没有匹配的数据。

    查找

    查找转换任务的功能类似于SQL Server 2000中的Data Pump任务。例如,假如数据中有一列ZipCode来自于导入数据中的两列State和City,在映射表中可以使用查找转换。在SQL Server 2000中这种功能很笨拙,必须使用join关联查找这样会使运行速度减慢。如图4-25是查找任务的编辑界面。

     

    图4-25 

    合并

    合并转换可以将两个路径中的输入数据合并成一个输出。这种转换类似于Union All转换,它有一些限制:

    合并之前数据必须排序,可以在此之前使用排序转换或者在数据源中使用ORDER BY语句 合并的元数据类型必须相同,例如CustomerID不能在一个路径中是数字型的但是在另一个路径中是字符类型的 假如有多于两个路径,需要选择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。使用代码组件可以完成下面的任务:

    使用.net类库集验证保险卡号和邮件地址  验证数据并忽略掉不合理的数据。例如,在人力资源招聘系统中删除那些不符合薪水要求的应聘者  编写组件和第三方客户整合 

    代码组件可以作为多种输出的数据源,可以选择在运行时更加高效地编译。

    代码组件允许编写代码充当转换transforms,数据源source,目的destination。使用代码组件可以完成下面的任务:

    使用.net类库集中的Regex类验证保险卡号和邮件地址 验证数据并忽略掉不合理的数据。例如,在人力资源招聘系统中删除那些不符合薪水要求的应聘者 编写组件和第三方客户整合

    代码组件可以作为多种输出的数据源,可以选择在运行时更加高效地编译。

    渐变维度(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个字符的列。

    下一篇随笔中,将用一个例子来具体说明怎么使用转换任务。

    原文链接:http://www.cnblogs.com/tylerdonet/archive/2011/04/12/2013959.html

    上一篇返回首页 下一篇

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

    别人在看

    帝国CMS7.5编辑器上传图片取消宽高的三种方法

    帝国cms如何自动生成缩略图的实现方法

    Windows 12即将到来,将彻底改变人机交互

    帝国CMS 7.5忘记登陆账号密码怎么办?可以phpmyadmin中重置管理员密码

    帝国CMS 7.5 后台编辑器换行,修改回车键br换行为p标签

    Windows 11 版本与 Windows 10比较,新功能一览

    Windows 11激活产品密钥收集及专业版激活方法

    如何从 Windows 11 中完全删除/卸载 OneNote?无解!

    抖音安全与信任开放日:揭秘推荐算法,告别单一标签依赖

    ultraedit编辑器打开文件时,总是提示是否转换为DOS格式,如何关闭?

    IT头条

    华为Pura80系列新机预热,余承东力赞其复杂光线下的视频拍摄实力

    01:28

    阿里千问3开源首战告捷:全球下载破千万,国产AI模型崛起新高度!

    01:22

    DeepSeek R1小版本试升级:网友实测编程能力已达到国际一线水平

    23:15

    NVIDIA 与 Dell 合作,大规模交付 Blackwell AI 系统

    20:52

    Cerebras 以最快的 Llama 4 Maverick 性能引领 LLM 推理竞赛

    20:51

    技术热点

    PHP中的随机性——你觉得自己幸运吗?

    搞定Ubuntu Linux下WPA无线上网

    Java使用内存映射实现大文件的上传

    MySQL安全性指南

    MySQL两项性能的基本测试浅谈

    教您使用UniqueIdentifier选取SQL Server主键

      友情链接:
    • IT采购网
    • 科技号
    • 中国存储网
    • 存储网
    • 半导体联盟
    • 医疗软件网
    • 软件中国
    • ITbrand
    • 采购中国
    • CIO智库
    • 考研题库
    • 法务网
    • AI工具网
    • 电子芯片网
    • 安全库
    • 隐私保护
    • 版权申明
    • 联系我们
    IT技术网 版权所有 © 2020-2025,京ICP备14047533号-20,Power by OK设计网

    在上方输入关键词后,回车键 开始搜索。Esc键 取消该搜索窗口。