转载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 ...
随机推荐
- 二维图形的矩阵变换(三)——在WPF中的应用矩阵变换
原文:二维图形的矩阵变换(三)--在WPF中的应用矩阵变换 UIElement和RenderTransform 首先,我们来看看什么样的对象可以进行变换.在WPF中,用于呈现给用户的对象的基类为Vis ...
- 产生WM_PAINT 消息
UpdateWindow会检查窗口的Update Region,当其不为空时才发送WM_PAINT消息:RedrawWindow则给我们更多的控制:是否重画非客户区和背景,是否总是发送WM_PAINT ...
- 通过 PHP 判断用户的设备是否是移动设备
<?php function isMobile() { // 如果有HTTP_X_WAP_PROFILE则一定是移动设备 if (isset ($_SERVER['HTTP_X_WAP_PROF ...
- 数据库 MySQL Jdbc JDBC的六个固定步骤
*0 案例: a)在JavaScript中使用正则表达式,在JS中正则表达式的定界符是:// var regexp = /^[0-9]+$/; if(regexp.test(nu ...
- [原]Unity3D深入浅出 - GUI控件
Unity的GUI类提供了丰富的界面控件,通过组合这些控件,完成和用户交互的界面. Lable:绘制文本和图片 Box:绘制一个图形框 Button:绘制一个响应单击事件的按钮 RepeatButto ...
- [原]Unity3D深入浅出 - 认识开发环境中的Component(组件)菜单
Component(组件)是用来添加到GameObject对象上的一组相关属性,本质上每个组件都是一个类的实例,比如在Cube上添加一个Mesh网格,即面向对象的思维方式可以理解成Cube对象里包含了 ...
- CentOS6脱机rpm安装MariaDB10
转载请保存原文链接:http://www.wlm.so/Article/Detail/lmb4cijci5mc900000 1.卸载原有mysql安装包,避免安装文件冲突 #查找所有的mysql包 r ...
- HDU 4635 Strongly connected(强连通分量,变形)
题意:给出一个有向图(不一定连通),问最多可添加多少条边而该图仍然没有强连通. 思路: 强连通分量必须先求出,每个强连通分量包含有几个点也需要知道,每个点只会属于1个强连通分量. 在使图不强连通的前提 ...
- 【转】禁止seekbar的拖动事件
原文网址:http://blog.csdn.net/ansionnal/article/details/8229801 当然是可以的! 其实是 onTouchEvent 事件时,不让他传递事件就行了! ...
- MySQL table_id原理及风险分析
1. 什么是table_id MySQL binlog文件按格式分为文件头部和事件信息.文件头部占4字节,内容固定为:"\xfe\x62\x69\x6e",接下来就是各个event ...