热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

[转]SSIS数据转换组件_派生列、审核、字符映射转换和条件性拆分转换

本文转自:http:www.cnblogs.comgudujianxiaoarchive201204142446925.html一派生列派生列转换通过对输入列进行类型转换或应用

本文转自:http://www.cnblogs.com/gudujianxiao/archive/2012/04/14/2446925.html

 

派生列

派生列转换通过对输入列进行类型转换或应用表达式得出新的结果。这个结果可以作为新列添加,也可以替换输入列。可以使用此转换执行下列任务:

  1.将不同列的数据连接到一个派生列中。例如,可以使用表达式 FirstName + " " + LastName 将
FirstNameLastName 列中的值组合到名为
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
函数提取当前年份。

 在上篇>聚合转换文章中我们已经使用到了派生列。其配置如下:

bubuko.com,布布扣 src="https://img8.php1.cn/3cdc5/1e70e/8fd/ff8b762299b1a433.jpeg"
>在这图中,可以根据需求来进行一些设计。本图的设置为计算单个商品购买的总金额。


审核转换

审核转换控件配置很简单,它使得包中的数据流包含有关包运行所处环境的数据。例如可以将包的名称、计算机名称和操作员姓名添加到数据流中。该转换功能只以下系统变量。




































说明


执行实例 GUID


插入唯一标识包的执行实例的 GUID。


包 ID


插入唯一标识包的 GUID。


包名称


插入包名称。


版本 ID


插入唯一标识包版本的 GUID。


执行开始时间


插入包执行的开始时间。


计算机名称


插入启动包的计算机的名称。


用户名


插入启动包的用户的登录名。


任务名称


插入与审核转换相关联的数据流任务的名称。


任务 ID


插入唯一标识与审核转换相关联的数据流任务的 GUID。

配置该转换功能如下步骤。



  1. 将审核转换控件按拖放到数据流任务中,并将上游的控件用绿色箭头连接起来。如图:

bubuko.com,布布扣src="https://img8.php1.cn/3cdc5/1e70e/8fd/0ce46c570a421f64.jpeg">

 



  1. 右键单击审核转换弹出窗口

bubuko.com,布布扣src="https://img8.php1.cn/3cdc5/1e70e/8fd/e587734a92a6604c.jpeg"
>

 



  1. 单击审核类型下拉框。选中需要的系统变量。然后在输出列中设置输出的名称。得到如下结果:

bubuko.com,布布扣src="https://img8.php1.cn/3cdc5/1e70e/8fd/6938651e59491a0b.jpeg"
>

 

配置好审核的系统变量,单击确定即可完成审核转换功能的配置信息。整个流程如下:

 

bubuko.com,布布扣src="https://img8.php1.cn/3cdc5/1e70e/8fd/97d6ca0873ae78f4.jpeg"
>

将转换的数据存放到C:\Users\zhuyujing\Desktop\test.txt。执行包.得到的结果如下:

 

bubuko.com,布布扣src="https://img8.php1.cn/3cdc5/1e70e/8fd/637e6a9b895dfc1c.jpeg">


>字符映射表转换

字符映射表转换其实就是将字符串函数应用于输入列中的字符数据。该功能只对字符串数据类型的输入列执行。例如我们可以将字符转换为下写、大写、或则繁体等等。如下图所示

bubuko.com,布布扣 

现在我们就演示一下将输入列中的NewName、PackageName分别转换为繁体和大写的,并将输入列NewName用转换后的繁体替换,创建一个新的列NewPackageName用于存储输入列PackageName映射的繁体字符。整个流程如下: 

bubuko.com,布布扣 src="https://img8.php1.cn/3cdc5/1e70e/8fd/aa0917b50578eb2c.jpeg"
>

配置成功后执行包。可以看到没有转换之前,NewName和PageageName分别是简体和小写字符 

bubuko.com,布布扣src="https://img8.php1.cn/3cdc5/1e70e/8fd/03c57cea8465d3a5.jpeg"
>

转换后,NewName列中的数据变成繁体、packageName列对应的NewPackageName列都是大写字符。

bubuko.com,布布扣src="https://img8.php1.cn/3cdc5/1e70e/8fd/ad18352d4e4f559a.jpeg"


四 条件性拆分转换

  条件性拆分转换功能类似 C#编程语言中的swith…case
语句。此转换将计算表达式,并且根据计算的结果将数据行定向到不同输出中。此转换还提供一个默认输出,如何某个行与任何表达式都不匹配。则它将被定向到默认输出。例如,可以将销售订单总额在1000~3000之间的数据输出到一个路径,将销售订单总额在3000~7000之间的数据输入到一个路径,将销售订单总额>=7000的数据输出到一个路径。不满足以上条件的设置为默认条件。作为另外一条路径输出。在设置这些条件的同时还可以编辑输出列的名称。最终结果如下图:

bubuko.com,布布扣 src="https://img8.php1.cn/3cdc5/1e70e/8fd/12dc9ce1e1756d00.jpeg"
>

 

配置好以后单击确定即可。为了检测结果。我们先在变量选项卡中设置如下几个变量

bubuko.com,布布扣src="https://img8.php1.cn/3cdc5/1e70e/8fd/8f9bc95afbcd9de5.jpeg">

 

然后在数据流选项开中托动四个行计数转并修改名称。如图:

bubuko.com,布布扣src="https://img8.php1.cn/3cdc5/1e70e/8fd/dd880fc818274d18.jpeg">

 

右键单击其中一个行计数,弹出窗口后,按如下图设置VariableName属性。本图已名为BadRowCount为例。其他行计数转换分别按同样的操作设置VariableName即可。

bubuko.com,布布扣src="https://img8.php1.cn/3cdc5/1e70e/8fd/cc3e08656409bed9.jpeg">

然后将刚才的条件性拆分转换与其中一个行计数用绿色箭头连接。弹出如下窗口bubuko.com,布布扣src="https://img8.php1.cn/3cdc5/1e70e/8fd/2bb1a0adbb23c417.jpeg"> 

在输出下拉框中选中条件。然后单击确定按钮即可。如下图

 

bubuko.com,布布扣src="https://img8.php1.cn/3cdc5/1e70e/8fd/1d34d08d9093c915.jpeg">

其他三个行计数转换按此步骤操作即可。最总得到如下图:

 bubuko.com,布布扣src="https://img8.php1.cn/3cdc5/1e70e/8fd/0b60c9b95b00e714.jpeg">

执行该包,等到如下图所示的结果

bubuko.com,布布扣src="https://img8.php1.cn/3cdc5/1e70e/8fd/7735a9e244dd890f.jpeg">

[转]SSIS数据转换组件_派生列、审核、字符映射转换和条件性拆分转换,布布扣,bubuko.com


推荐阅读
  • egg实现登录鉴权(七):权限管理
    权限管理包含三部分:访问页面的权限,操作功能的权限和获取数据权限。页面权限:登录用户所属角色的可访问页面的权限功能权限:登录用户所属角色的可访问页面的操作权限数据权限:登录用户所属 ... [详细]
  • 如何高效学习鸿蒙操作系统:开发者指南
    本文探讨了开发者如何更有效地学习鸿蒙操作系统,提供了来自行业专家的建议,包括系统化学习方法、职业规划建议以及具体的开发技巧。 ... [详细]
  • 本文介绍了用户界面(User Interface, UI)的基本概念,以及在iOS应用程序中UIView及其子类的重要性和使用方式。文章详细探讨了UIView如何作为用户交互的核心组件,以及它与其他UI控件和业务逻辑的关系。 ... [详细]
  • 本文由chszs撰写,详细介绍了Apache Mina框架的核心开发流程及自定义协议处理方法。文章涵盖从创建IoService实例到协议编解码的具体步骤,适合希望深入了解Mina框架应用的开发者。 ... [详细]
  • LeetCode 102 - 二叉树层次遍历详解
    本文详细解析了LeetCode第102题——二叉树的层次遍历问题,提供了C++语言的实现代码,并对算法的核心思想和具体步骤进行了深入讲解。 ... [详细]
  • 如何高效渲染JSON数据
    本文介绍了在控制器中返回JSON结果的方法,并详细说明了如何利用jQuery处理和展示这些数据,为Web开发提供了实用的技巧。 ... [详细]
  • 3DSMAX制作超现实的体育馆模型
    这篇教程是向脚本之家的朋友介绍3DSMAX制作超现实的体育馆模型方法,教程制作出来的体育馆模型非常地不错,不过教程有点难度,需要有一定基础的朋友学习,推荐到脚本之家,喜欢的朋友可 ... [详细]
  • 默认情况下,Git 使用 Nano 编辑器进行提交信息的编辑,但如果您更喜欢使用 Vim,可以通过简单的配置更改来实现这一变化。本文将指导您如何通过修改全局配置文件来设置 Vim 作为默认的 Git 提交编辑器。 ... [详细]
  • 探索Java 11中的ZGC垃圾收集器
    Java 11引入了一种新的垃圾收集器——ZGC,由Oracle公司研发,旨在支持TB级别的内存容量,并保证极低的暂停时间。本文将探讨ZGC的开发背景、技术特点及其潜在的应用前景。 ... [详细]
  • 本文探讨了线性表中元素的删除方法,包括顺序表和链表的不同实现策略,以及这些策略在实际应用中的性能分析。 ... [详细]
  • 实现Win10与Linux服务器的SSH无密码登录
    本文介绍了如何在Windows 10环境下使用Git工具,通过配置SSH密钥对,实现与Linux服务器的无密码登录。主要步骤包括生成本地公钥、上传至服务器以及配置服务器端的信任关系。 ... [详细]
  • 本文探讨了Linux环境下线程私有数据(Thread-Specific Data, TSD)的概念及其重要性,介绍了如何通过TSD技术避免多线程间全局变量冲突的问题,并提供了具体的实现方法和示例代码。 ... [详细]
  • C/C++ 应用程序的安装与卸载解决方案
    本文介绍了如何使用Inno Setup来创建C/C++应用程序的安装程序,包括自动检测并安装所需的运行库,确保应用能够顺利安装和卸载。 ... [详细]
  • 本文提供了一个关于AC自动机(Aho-Corasick Algorithm)的详细解析与实现方法,特别针对P3796题目进行了深入探讨。文章不仅涵盖了AC自动机的基本概念,还重点讲解了如何通过构建失败指针(fail pointer)来提高字符串匹配效率。 ... [详细]
  • Awk是一款功能强大的文本分析与处理工具,尤其在数据解析和报告生成方面表现突出。它通过读取由换行符分隔的记录,并按照指定的字段分隔符来划分和处理这些记录,从而实现复杂的数据操作。 ... [详细]
author-avatar
此恨缠绵_793
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有