在上一个随笔中我们熟悉了数据流任务,现在来做一个例子,通过实践学习这些介绍的内容。这个例子从AdventureWorks数据库中取得数据,然后对数据进行聚合,排序,计算产生新列操作并输入到一个.csv文件中。

  1. 新建一个新的package将它重命名为AdventureWorksExtract.dtsx,在control flow中拖放一个数据流任务,双击进入data flow 界面
  2. 在data flow界面内拖放一个OLE DB数据源,右击重命名为TransactionHistory,双         击打开编辑界面AdventureWorks数据库连接如果已经存在就直接选择它,如果不存在点击新建一个连接
  3. 新建连接之后回到OLE DB Source Editor界面,默认Data Access Mode选项是Table or View,选择数据库中的表[Production].[TransactionHistoryArchive],如图4-32                              图4-32
  4. 点击Column Page如图4-33选择列ProductID, Quantity,和 ActualCost,点击OK退出                              图4-33
  5. 从工具栏Data Flow Transformations中拖放一个Derived Column任务用来产生派生新列,重命名为Calculate Total Cost,用鼠标拖住TransactionHistory 数据源连接这个task
  6. 双击这个Derived Column打开编辑界面如图4-34,在表达式列中输入下面的表达式:[Quantity]* [ActualCost],列名也可以从左边Columns拖放如图,在Derived Column Name列中输入TotalCost,Derived Column列中选择<add as a new column>,点击OK退出编辑界面                        图4-34
  7. 在data flow中拖放一个Aggregate任务,重命名为Aggregate Data,把它和Derived Column连接起来。双击Aggregate任务打开编辑界面如图4-35双击ProductID可以看到下面表格中新添加了一行,在Operation中选择Group By,然后栓剂Quantity和TotalCost,在Operation中选择Sum。点击OK退出编辑界面                                                              图4-35
  8. 从Data Flow Transformations中拖放一个Sort任务重命名为Sort by ProductID,把它和Aggregate任务连接起来。双击Sort任务打开编辑界面,选择Quantity字段降序排列,意思是按照销售量从高到低排序,点击OK退出编辑界面。
  9. 从Data Flow Destinations中拖放一个一个Flat File Destination任务重命名为Vendor Extract,把它和Sort任务连接起来。
  10. 双击Flat File Destination打开编辑界面,新建一个文件连接,在弹出的文件格式选择对话框中默认选择第一个Delimited,将连接命名为Vendor Extract,在File Name文本框中输入C:\SSISDemos\VendorExtract.csv,如果C盘下没有这个文件夹,要新建一个。最后的界面如图4-36,点击OK退出编辑界面。                                                         图4-36  点击mapping标签界面,可以看到从Sort任务中输入的数据和文件中的数据列一一对应,如图4-37 图4-37

现在整个package完成了,这是一个典型的ETLpackage,右击运行这个package执行完成之后可以看到绿色的连线傍边有转换的数据行数,如图4-38

图4-38

转载SSIS中的容器和数据流—举例说明数据转换任务的更多相关文章

  1. 转载SSIS中的容器和数据流—数据转换(Transformations)续

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

  2. 转载SSIS中的容器和数据流—数据转换(Transformations)

    对数据流来说按照需求将数据转换成需要的格式是数据操作中的一个关键的步骤.例如想要得到聚合排序后的运算结果,转换可以实现这种操作.和SQL Server 2000 DTS完全不同,这些操作不需要编写sc ...

  3. SSIS中出现数据流数据源假死状态的解决办法

    相信开发过Sql Server SSIS的人都遇到过在数据流中数据源假死的问题,特别是Excel Source特别容易假死,当job执行到数据流中的Excel Source时,既不报错也不执行,也没有 ...

  4. [转]SSIS中的脚本—脚本任务

    本文转自:http://www.cnblogs.com/tylerdonet/archive/2011/09/16/2179123.html 脚本任务主要用来控制数据流,当现有的控制流 任务不能满足复 ...

  5. 在没安装OFFICE的服务器SSIS中进行EXCEL的ETL操作!

    由于OFFICE 2010的安装包比较庞大,如果仅仅为了在服务器中实现操作EXCEL,完全没有必要安装整个OFFICE,是否可以不装OFFICE也实现与OFFICE文件的互相操作呢?答案是肯定的,在S ...

  6. 微软BI 之SSIS 系列 - 在 SQL 和 SSIS 中实现行转列的 PIVOT 透视操作

    开篇介绍 记得笔者在 2006年左右刚开始学习 SQL Server 2000 的时候,遇到一个面试题就是行转列,列转行的操作,当时写了很长时间的 SQL 语句最终还是以失败而告终.后来即使能写出来, ...

  7. 微软BI 之SSIS 系列 - 在 SSIS 中导入 ACCESS 数据库中的数据

    开篇介绍 来自 天善学院 一个学员的问题,如何在 SSIS 中导入 ACCESS 数据表中的数据. 在 SSIS 中导入 ACCESS 数据库数据 ACCESS 实际上是一个轻量级的桌面数据库,直接使 ...

  8. SQL点滴9—SQL Server中的事务处理以及SSIS中的内建事务

    原文:SQL点滴9-SQL Server中的事务处理以及SSIS中的内建事务 我们可以把SSIS中的整个package包含在一个事务中,但是如果在package的执行过程中有一个表需要锁定应该怎么处理 ...

  9. SSIS中循环遍历组件[Foreach Loop Container]

    背景 每月给业务部门提取数据,每个分公司都要提取一般,先跑SQL,再粘贴到Excel中,然后发邮件给相关的人员.费时费力,还容易粘贴错位.因此,需要通过一个程序完成这些步骤.我首先想到的是通过SSIS ...

随机推荐

  1. C语言itoa()函数和atoi()函数详解(整数转字符)

    http://c.biancheng.net/cpp/html/792.html C语言提供了几个标准库函数,可以将任意类型(整型.长整型.浮点型等)的数字转换为字符串. 以下是用itoa()函数将整 ...

  2. nginx负载均衡和反向代理有什么区别

    近在研究nginx的负载均衡和反向代理,先看下这两个简单的配置吧! 负载均衡 worker_processes 1; events { worker_connections 1024; } http{ ...

  3. 如何:在 Winform 动态启动、控制台命令行?

    需求   winForm 程序输出类型为 windows 程序(不是命令行程序)   在运行时想输入一些信息编译开发调试,如何实现这一功能 解答:  AllocConsole.FreeConsole ...

  4. RedMine项目管理系统安装问题(Windows版一键安装包)

    安装准备: 操作环境:VMware10 下安装的windows10 系统 使用软件:<bitnami-redmine---windows-installer.exe> 问题描述: 安装过程 ...

  5. #error作用与举例

    2013-09-05 14:32:17   #error命令是C/C++语言的预处理命令之一,当预处理器预处理到#error命令时将停止编译并输出用户自定义的错误消息.   语法: #error [用 ...

  6. Javascript String类的属性及方法

    String 类 Attribute and method anchor()              创建一个<a>标签的实例,将其name属性设置为被传递给此方法的字符串 big()  ...

  7. @深入注解,在Java中设计和使用自己的注解

    我们用过 JDK给我们提供的  @Override  @Deprecated @SuppressWarning 注解  ,这些注解是JDK给我们提供的 ,我们只是在用别人写好的东西 ,那么我们是否可以 ...

  8. bzoj2668

    对于这种题很容易看出是费用流吧…… 但这道题不容易建模: 首先是怎么表示目标状态和其实状态,看起来有黑有白很复杂 但实际上,不难发现,白色格子没什么用,起决定作用的是黑格子 也就是我们可以把问题简化: ...

  9. echarts 版本区分导致的错误

    在更新到echarts2.2.5这个版本的时候发现map不能正常运行了.....擦!控制台一看: 我就日了,那个小刺老把这朕的源码改了......,找到这一行,果断给轮掉: 都特么好了..... 再透 ...

  10. jquery的API查看 / prepend、prependTo、append、appendTo的用法

    理解jquery设计思想 记住大部分jquery API的使用 英文:http://api.jquery.com/ 中文: http://www.css88.com/jqapi-1.9/ http:/ ...