[转]SSIS数据转换组件_派生列、审核、字符映射转换和条件性拆分转换
本文转自:http://www.cnblogs.com/gudujianxiao/archive/2012/04/14/2446925.html
一 派生列
派生列转换通过对输入列进行类型转换或应用表达式得出新的结果。这个结果可以作为新列添加,也可以替换输入列。可以使用此转换执行下列任务:
1.将不同列的数据连接到一个派生列中。例如,可以使用表达式 FirstName + " " + LastName 将 FirstName 和 LastName 列中的值组合到名为 FullName 的单个派 生列中。
2.通过使用 SUBSTRING 之类的函数从字符串数据中提取字符,然后将结果存储到派生列中。例如,可以使用表达式 SUBSTRING(FirstName,1,1) 从 FirstName 列提取人名的首字母。
3.对数值数据应用数学函数,然后将结果存储到派生列中。例如,可以使用表达式 ROUND(SalesTax, 2) 将数值列 SalesTax 的值更改为精确到小数点后两位。
4.创建比较输入列和变量的表达式。例如,可以使用表达式 ProductVersion == @Version? ProductVersion : @Version 来比较变量 Version 与 ProductVersion列中的数据,然后根据比较结果决定选用 Version 还是 ProductVersion 的值。
5.提取日期时间值的某部分。例如,可以通过表达式 DATEPART("year",GETDATE()) 使用 GETDATE 和 DATEPART 函数提取当前年份。
在上篇聚合转换文章中我们已经使用到了派生列。其配置如下:
在这图中,可以根据需求来进行一些设计。本图的设置为计算单个商品购买的总金额。
二 审核转换
审核转换控件配置很简单,它使得包中的数据流包含有关包运行所处环境的数据。例如可以将包的名称、计算机名称和操作员姓名添加到数据流中。该转换功能只以下系统变量。
值 |
说明 |
执行实例 GUID |
插入唯一标识包的执行实例的 GUID。 |
包 ID |
插入唯一标识包的 GUID。 |
包名称 |
插入包名称。 |
版本 ID |
插入唯一标识包版本的 GUID。 |
执行开始时间 |
插入包执行的开始时间。 |
计算机名称 |
插入启动包的计算机的名称。 |
用户名 |
插入启动包的用户的登录名。 |
任务名称 |
插入与审核转换相关联的数据流任务的名称。 |
任务 ID |
插入唯一标识与审核转换相关联的数据流任务的 GUID。 |
配置该转换功能如下步骤。
- 将审核转换控件按拖放到数据流任务中,并将上游的控件用绿色箭头连接起来。如图:
- 右键单击审核转换弹出窗口
- 单击审核类型下拉框。选中需要的系统变量。然后在输出列中设置输出的名称。得到如下结果:
配置好审核的系统变量,单击确定即可完成审核转换功能的配置信息。整个流程如下:
将转换的数据存放到C:\Users\zhuyujing\Desktop\test.txt。执行包.得到的结果如下:
三 字符映射表转换
字符映射表转换其实就是将字符串函数应用于输入列中的字符数据。该功能只对字符串数据类型的输入列执行。例如我们可以将字符转换为下写、大写、或则繁体等等。如下图所示
现在我们就演示一下将输入列中的NewName、PackageName分别转换为繁体和大写的,并将输入列NewName用转换后的繁体替换,创建一个新的列NewPackageName用于存储输入列PackageName映射的繁体字符。整个流程如下:
配置成功后执行包。可以看到没有转换之前,NewName和PageageName分别是简体和小写字符
转换后,NewName列中的数据变成繁体、packageName列对应的NewPackageName列都是大写字符。
四 条件性拆分转换
条件性拆分转换功能类似 C#编程语言中的swith…case 语句。此转换将计算表达式,并且根据计算的结果将数据行定向到不同输出中。此转换还提供一个默认输出,如何某个行与任何表达式都不匹配。则它将被定向到默认输出。例如,可以将销售订单总额在1000~3000之间的数据输出到一个路径,将销售订单总额在3000~7000之间的数据输入到一个路径,将销售订单总额>=7000的数据输出到一个路径。不满足以上条件的设置为默认条件。作为另外一条路径输出。在设置这些条件的同时还可以编辑输出列的名称。最终结果如下图:
配置好以后单击确定即可。为了检测结果。我们先在变量选项卡中设置如下几个变量
然后在数据流选项开中托动四个行计数转并修改名称。如图:
右键单击其中一个行计数,弹出窗口后,按如下图设置VariableName属性。本图已名为BadRowCount为例。其他行计数转换分别按同样的操作设置VariableName即可。
然后将刚才的条件性拆分转换与其中一个行计数用绿色箭头连接。弹出如下窗口
在输出下拉框中选中条件。然后单击确定按钮即可。如下图
其他三个行计数转换按此步骤操作即可。最总得到如下图:
执行该包,等到如下图所示的结果
[转]SSIS数据转换组件_派生列、审核、字符映射转换和条件性拆分转换的更多相关文章
- SSIS: Lookup组件高级用法,生成推断成员(inferred member)
将数据导入事实表如果无法匹配维度表的记录一般有两种处理方式. 一是将不匹配记录输出到一个表中待后续处理,然后重新导入.二是先生成维度Key,后续再完善维度key,本文指导各位使用第二种方式. 背景 比 ...
- kettle根据参数动态派生列
抽取数据的时候没有日期字段,需要根据抽取日期自动生成月份,如下图结构 表输入_参数部分,接收来自其他系统传过来的参数(JAVA程序或者页面),具体设置如图 在查询数据时候派生列 运行模型的时候,给参数 ...
- 《BI那点儿事》数据流转换——派生列
派生列转换通过对转换输入列应用表达式来创建新列值. 表达式可以包含来自转换输入的变量.函数.运算符和列的任意组合. 结果可作为新列添加,也可作为替换值插入到现有列. 派生列转换可定义多个派生列,任何变 ...
- 第33讲 UI组件_进度条ProcessBar和消息队列处理器handler
第33讲UI组件_进度条ProcessBar和消息队列处理器handler 1. 进度条ProcessBar 一个可视化的进度指示器,代表正在执行的耗时任务.可以为用户展示一个进度条,表示正在执行的任 ...
- 组件_ UIToolbar
组件_ UIToolbar /** 1. 顶部toolbar 2. TextField可以以UIBarButtonItem的自定义视图的方式加入toolbar 3. 三个按钮 4. 将UIBarBu ...
- Qt高仿Excel表格组件-支持冻结列、冻结行、内容自适应和合并单元格
目录 一.概述 二.效果展示 三.实现思路 1.冻结行.冻结列 2.行高自适应 3.蚂蚁线 四.测试代码 1.添加表格数据 2.设置冻结行.列 3.行高.列宽 4.单元格背景色 5.单元格文字 6.其 ...
- SQL分组多列统计(GROUP BY后按条件分列统计)
as tjsl from fyxx group by zt,whbmbh end) as ybhsl from fyxx group by whbmbh 下面是摘自别人的博客 最近遇到一个问题,需要对 ...
- 【数据库】SQL分组多列统计(GROUP BY后按条件分列统计)
select whbmbh ,zt,1 as tjsl from fyxx group by zt,whbmbh select whbmbh,sum(case zt when '有效' then 1 ...
- excel中统计列中的值在其他列出现的次数多个条件
excel中统计列中的值在其他列出现的次数多个条件 =COUNTIFS(E2:E373,"=VIP经销商",J2:J373,K2) 解释 E列的第二行到第373行中值 等于 VIP ...
随机推荐
- 【python】发送邮件
从网上找了一些用python发邮件的教程,学习一下: 1.发送普通的文本邮件 http://www.cnblogs.com/xiaowuyi/archive/2012/03/17/2404015.ht ...
- 线程同步工具 Semaphore类使用案例
参考博文 : 线程同步工具(一) 线程同步工具(二)控制并发访问多个资源 并发工具类(三)控制并发线程数的Semaphore 使用Semaphore模拟互斥锁 当一个线程想要访问某个共享资源,首先,它 ...
- OpenCL学习笔记(二):并行编程概念理解
欢迎转载,转载请注明:本文出自Bin的专栏blog.csdn.net/xbinworld. 技术交流QQ群:433250724,欢迎对算法.技术.应用感兴趣的同学加入. 并行编程的需求是显而易见的,其 ...
- Scikit Learn: 在python中机器学习
转自:http://my.oschina.net/u/175377/blog/84420#OSC_h2_23 Scikit Learn: 在python中机器学习 Warning 警告:有些没能理解的 ...
- 设置loadrunner中每个mdrv.exe进程中包含的vuser个数
设置loadrunner中每个mdrv.exe进程中包含的vuser个数 在loadrunner中,默认的是每50个vuser会使用一个mdrv.exe进程,但是有些时候vuser中的使用的线程太多就 ...
- bzoj 1444 AC自动机 + 矩阵乘法 | 高斯消元
恶补了一下AC自动机,花了一天时间终于全部搞明白了. 思路:将每个人的串加入AC自动机,在AC自动机生成的状态图上建边,注意单词末尾的节点只能转移到自己概率为1, 然后将矩阵自乘几十次后误差就很小了, ...
- python 编码处理
# -*- coding: utf-8 -*-import easygui as gimport sysreload(sys)sys.setdefaultencoding('utf-8')
- CentOS7单机部署lamp环境和apache虚拟主机
(1)apache介绍 apache : httpd.apache.org 软件包:httpd 端口服务:80/tcp(http) 443/tcp(https,http+ssl) 配置文件: /etc ...
- python模式匹配,提取指定字段
re匹配时分多行模式(re.M)与单行模式(rs.S),多行模式是每一行单独匹配,单行模式是把所有的行当成一行来匹配. 单行模式下.可以匹配换行符. ^$匹配所有字符 import re s='1_2 ...
- 将字符串顺序重新排序DOM节点
对于一个已有的HTML结构: Haskell JavaScript Python Ruby Scheme <!-- HTML结构 --> <ol id="test-list ...