转载SSIS中的容器和数据流—举例说明数据转换任务
在上一个随笔中我们熟悉了数据流任务,现在来做一个例子,通过实践学习这些介绍的内容。这个例子从AdventureWorks数据库中取得数据,然后对数据进行聚合,排序,计算产生新列操作并输入到一个.csv文件中。
- 新建一个新的package将它重命名为AdventureWorksExtract.dtsx,在control flow中拖放一个数据流任务,双击进入data flow 界面
- 在data flow界面内拖放一个OLE DB数据源,右击重命名为TransactionHistory,双 击打开编辑界面AdventureWorks数据库连接如果已经存在就直接选择它,如果不存在点击新建一个连接
- 新建连接之后回到OLE DB Source Editor界面,默认Data Access Mode选项是Table or View,选择数据库中的表[Production].[TransactionHistoryArchive],如图4-32 图4-32
- 点击Column Page如图4-33选择列ProductID, Quantity,和 ActualCost,点击OK退出 图4-33
- 从工具栏Data Flow Transformations中拖放一个Derived Column任务用来产生派生新列,重命名为Calculate Total Cost,用鼠标拖住TransactionHistory 数据源连接这个task
- 双击这个Derived Column打开编辑界面如图4-34,在表达式列中输入下面的表达式:[Quantity]* [ActualCost],列名也可以从左边Columns拖放如图,在Derived Column Name列中输入TotalCost,Derived Column列中选择<add as a new column>,点击OK退出编辑界面 图4-34
- 在data flow中拖放一个Aggregate任务,重命名为Aggregate Data,把它和Derived Column连接起来。双击Aggregate任务打开编辑界面如图4-35双击ProductID可以看到下面表格中新添加了一行,在Operation中选择Group By,然后栓剂Quantity和TotalCost,在Operation中选择Sum。点击OK退出编辑界面 图4-35
- 从Data Flow Transformations中拖放一个Sort任务重命名为Sort by ProductID,把它和Aggregate任务连接起来。双击Sort任务打开编辑界面,选择Quantity字段降序排列,意思是按照销售量从高到低排序,点击OK退出编辑界面。
- 从Data Flow Destinations中拖放一个一个Flat File Destination任务重命名为Vendor Extract,把它和Sort任务连接起来。
- 双击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中的容器和数据流—举例说明数据转换任务的更多相关文章
- 转载SSIS中的容器和数据流—数据转换(Transformations)续
数据挖掘请求 数据挖掘任务是SSIS中一个很重要的任务,它的思想来源于一些算法.数据挖掘请求运行数据挖掘请求,并将结果输出到数据流.它还可以添加一些预测新列,一些应用场合如下列举: 根据已知的一些列, ...
- 转载SSIS中的容器和数据流—数据转换(Transformations)
对数据流来说按照需求将数据转换成需要的格式是数据操作中的一个关键的步骤.例如想要得到聚合排序后的运算结果,转换可以实现这种操作.和SQL Server 2000 DTS完全不同,这些操作不需要编写sc ...
- SSIS中出现数据流数据源假死状态的解决办法
相信开发过Sql Server SSIS的人都遇到过在数据流中数据源假死的问题,特别是Excel Source特别容易假死,当job执行到数据流中的Excel Source时,既不报错也不执行,也没有 ...
- [转]SSIS中的脚本—脚本任务
本文转自:http://www.cnblogs.com/tylerdonet/archive/2011/09/16/2179123.html 脚本任务主要用来控制数据流,当现有的控制流 任务不能满足复 ...
- 在没安装OFFICE的服务器SSIS中进行EXCEL的ETL操作!
由于OFFICE 2010的安装包比较庞大,如果仅仅为了在服务器中实现操作EXCEL,完全没有必要安装整个OFFICE,是否可以不装OFFICE也实现与OFFICE文件的互相操作呢?答案是肯定的,在S ...
- 微软BI 之SSIS 系列 - 在 SQL 和 SSIS 中实现行转列的 PIVOT 透视操作
开篇介绍 记得笔者在 2006年左右刚开始学习 SQL Server 2000 的时候,遇到一个面试题就是行转列,列转行的操作,当时写了很长时间的 SQL 语句最终还是以失败而告终.后来即使能写出来, ...
- 微软BI 之SSIS 系列 - 在 SSIS 中导入 ACCESS 数据库中的数据
开篇介绍 来自 天善学院 一个学员的问题,如何在 SSIS 中导入 ACCESS 数据表中的数据. 在 SSIS 中导入 ACCESS 数据库数据 ACCESS 实际上是一个轻量级的桌面数据库,直接使 ...
- SQL点滴9—SQL Server中的事务处理以及SSIS中的内建事务
原文:SQL点滴9-SQL Server中的事务处理以及SSIS中的内建事务 我们可以把SSIS中的整个package包含在一个事务中,但是如果在package的执行过程中有一个表需要锁定应该怎么处理 ...
- SSIS中循环遍历组件[Foreach Loop Container]
背景 每月给业务部门提取数据,每个分公司都要提取一般,先跑SQL,再粘贴到Excel中,然后发邮件给相关的人员.费时费力,还容易粘贴错位.因此,需要通过一个程序完成这些步骤.我首先想到的是通过SSIS ...
随机推荐
- HashTable、HashMap、LinkedHashMap、TreeMap的比较
HashTable:继承自Dictionary类,实现了Map接口,不允许键或值为空,线程同步: HashMap:继承自AbstractMap类,实现了Map接口,允许键或值为空,线程不同步: Lin ...
- highcharts 切换
<!doctype html> <html lang="en"> <head> <script type="text/javas ...
- coco2d-js 多屏适配相关API
setDesignResolutionSize() //设计分辨率大小及模式 setContentScaleFactor() //内容缩放因子 setSearchPaths() //资源搜索路径 g ...
- atomikos的Jta配置
配置说明见: http://www.atomikos.com/Documentation/JtaProperties atomikos的一些配置,文档中说明的比较清楚,有两个属性配置不太明确:com. ...
- fedora SSH
设置无密码登陆时注意:chmod 0700 .ssh chmod 600 ~/.ssh/authorized_keys cat /root/.ssh/id_rsa.pub >> /ro ...
- 【剑指offer】找出数组中出现一次的两个数
2013-09-08 10:50:46 一个整型数组中,除了两个数字之外,其他数字都出现了2次,找出这两个只出现一次的数字,要求时间复杂度是O(N),空间复杂度是O(1). 小结: 任何数与0异或,结 ...
- PHP上传遇到的问题-php 上传大文件主要涉及配置upload_max_filesize和post_max_size两个选项
今天在做上传的时候出现一个非常怪的问题,有时候表单提交可以获取到值,有时候就获取不到了,连普通的字段都获取不到了,苦思冥想还没解决,最后问了师傅,师傅看了说挺奇怪的,然后问我upload_max_fi ...
- bash 读入文件
Suppose we have a file contains the following information, termed input_file: A 0 B 1 C ...
- mac terminal终端ls命令参数详解
原文:https://developer.apple.com/library/mac/documentation/Darwin/Reference/ManPages/man1/ls.1.html -a ...
- poj 2299 Ultra-QuickSort (归并排序 求逆序数)
题目:http://poj.org/problem?id=2299 这个题目实际就是求逆序数,注意 long long 上白书上的模板 #include <iostream> #inclu ...