kettle的输入输出组件和脚本组件
一、 输入组件
1.1表输入
从指定的数据库中,通过sql语句来查询数据加载到内存。
允许简易转换:勾选后可以避免不必要的字段的数据类型转换,从而提高性能。
替换sql语句里的变量:勾选后可以通过${queryDate}来使用queryDate变量。
从步骤中插入数据:以上次的步骤中的数据作为数据的参数,使用?来获取上步骤的数据,查询多个列就多个?接受。
从步骤中插入数据的例子:
csv文件里面有一些id,我们需要读取这个id的值,然后去数据库里面找对应id的数据
我们从csv中读取数据,所以需要csv文件输入组件,并且需要从数据库中回去数据,所以需要表输入组件,最终会形成下面的转换图:

其中csv读取到的id内容是:

表输入的配置是:

最终表输入的输出是:

1.2一个组件有多个数据通道
一个组件往多个通道发送时:可以选择分发或者是复制。

分发的意思是分流,就是把输出分为多分发送到不同的目的地
复制的意思是每个目的地接收到的数据是一样的
这里举一个复制的例子,读取数据库中的数据复制多分到excel输出、json输出、表输出
表输出需要注意字段的映射关系:

这是转换图:

二、执行sql的组件
执行脚本是很常用的一个组件,主要用于将上一步骤的结果作为参数来执行sql语句。
执行每一行:是否要对偶上个步骤的N行的结果一行一行的执行此脚本。
execute as a statment:当做一条完整的语句执行
变量替换:选中后,就可以${date}方式使用变量
quote string:选中后会识别?来表示上步骤传来的数据。
测试程序:
我们读取csv文件,并把csv文件中的数据插入到mysql的表中

其中执行sql脚本的配置是:

三、公式
在原来字段的基础上,使用新的自定义公式产生新的字段。变量用{}括起来。
例子:
我们读取csv文件,将name字段变为大写

最终的公式的输出是:

四、记录集连接
根据两个输入的连接字段选择连接方式,注意一个问题:关联的数据源要事先排好序。
五、字段选择工具
在关联之后去掉一些不需要的字段,或者修改字段的控制
字段选择的转换图:

csv文件里面包括两列的数据,id和name,现在我们把id字段名改为了new_id,并且将name字段删除
字段选择后的结果:

六、合并记录
将跨数据源的数据合并在一起的操作,相当于在同一数据库中的union操作。


union有数据的相对比较的功能
匹配关键字:是两个数据源数据对比的依据
标志字段是要显示的两个数据源的对比结果:
new:原来数据源没有关键字匹配的值,新数据源有关键字匹配的值。
delete:原来数据源有关键字匹配的值,新数据源没有关键字匹配的值。
changed:原来数据源和新数据源有关键字匹配的值,但是其他项修改了。
identical:两条数据是一致的。
kettle的输入输出组件和脚本组件的更多相关文章
- SSIS 通过添加脚本组件 自定义转换数据
问题:从mysql导入到sql的汉字都是乱码或者干脆导入不成功,报”截断字符串“错误,错在mysql当时建立的都是使用的默认编码latin1;搞不明白,又不是瑞典人,你用这个干毛.导致现在遇到n多问题 ...
- 【Unity3D基础教程】给初学者看的Unity教程(二):所有脚本组件的基类 -- MonoBehaviour的前世今生
作者:王选易,出处:http://www.cnblogs.com/neverdie/ 欢迎转载,也请保留这段声明.如果你喜欢这篇文章,请点[推荐].谢谢! 引子 上一次我们讲了GameObject,C ...
- 如何在SSIS的脚本组件中访问变量
原文:如何在SSIS的脚本组件中访问变量 这是一个小问题,我们在SSIS的设计中很多地方都会用到变量,我习惯性地将"变量"和"表达式"称为SSIS的灵魂,虽然不 ...
- 王者荣耀是怎样炼成的(三)unity组件与脚本
转载请注明出处:http://www.cnblogs.com/yuxiuyan/p/7565345.html 上回书说到了unity的基本操作.这回我们来侃侃unity中的组件与脚本. 目录结构 一. ...
- VueJs(8)---组件(注册组件)
组件(注册组件) 一.介绍 组件系统是Vue.js其中一个重要的概念,它提供了一种抽象,让我们可以使用独立可复用的小组件来构建大型应用,任意类型的应用界面都可以抽象为一个组件树 那么什么是组件呢? 组 ...
- Sprite组件和Button组件的使用
一.Sprint组件的使用 1.游戏中显示一张图片,通常我们称之为"精灵" sprite 2.cocos creator如果需要显示一个图片,那么需要在节点上挂一个精灵组件,为这个 ...
- 关于Unity中UI中的Mask组件、Text组件和布局
一.Mask组件 遮罩,Rect Mask矩形Mask(Rect Mask2D组件),图片Mask(Mask组件)(图片Mask的透明度不为0的部分显示子图片,为0的部分不显示子图片) Rect Ma ...
- GUI的最终选择 Tkinter(三):Checkbutton组件和Radiobutton组件、LabelFrame组件
Checkbutton组件 Checkbutton组件就是常见的多选按钮,而Radiobutton则是单选按钮 from tkinter import * root = Tk() v = IntVar ...
- vue组件化初体验 全局组件和局部组件
vue组件化初体验 全局组件和局部组件 vue组件化 全局组件 局部组件 关于vue入门案例请参阅 https://www.cnblogs.com/singledogpro/p/11938222.h ...
随机推荐
- linux安装mysqlclient报错
错误信息 Collecting mysqlclient Using cached mysqlclient-1.3.12.tar.gz Complete output from command pyth ...
- ubuntu修改root密码
1.我们在安装系统的时候我们会把系统的密码设置的比较简单,所以导致后面我们别人很容易操作我们的电脑.所以,我们就可以修改密码,你只要在系统上输入: sudo passwd root
- zzuli1985(dp/水dfs郑轻比赛)
再一次感受到dp的威力 1985: 即将到来的新生赛 Time Limit: 1 Sec Memory Limit: 128 MBSubmit: 112 Solved: 28 SubmitStat ...
- dp练习(6)——搬运礼物
3409 搬运礼物 CodeVS原创 时间限制: 1 s 空间限制: 64000 KB 题目等级 : 青铜 Bronze 题解 题目描述 Description 小浣熊松松特别喜欢交 ...
- js 正则去除指定的单词
以企业邮箱为例:@后面不能是qq 126 163 188 gmail yahoo sina hotmail suhu sogu 等单词. <!DOCTYPE htm ...
- 自定义实现spark的分区函数
有时自己的业务需要自己实现spark的分区函数 以下代码是实现一个自定义spark分区的demo 实现的功能是根据key值的最后一位数字,写到不同的文件 例如: 10写入到part-00000 11写 ...
- 火狐浏览器访问网站出现 HTTP Error 400. The request is badly formed.错误,怎么解决
今天在访问某个网站时,出现一个“HTTP Error 400. The request is badly formed.”错误, 那么应该如何解决呢? 1.问题描述: 用火狐浏览网站出现“”HTTP ...
- o(1)取b > a,且b的二进制中1的个数等于a二进制中1的个数,且使b最小
给你一个uint32 a,让你找到另一个uint32 b,使b > a,且b的二进制中1的个数等于a二进制中1的个数.且使b最小.(数据保证可出) 1 因为1的个数不变,所以必然大于n+lowb ...
- MinGW安装教程——著名C/C++编译器GCC的Windows版本
前言本文主要讲述如何安装 C语言 编译器——MinGW,特点是文章附有完整详细的实际安装过程截图,文字反而起说明提示作用. 编写本文的原因始于我的一个观点:图片可以比文字传达更多的信息,也能让其他人更 ...
- 关于双网卡双宽带Http及Socks代理的配置
1.[硬件环境] a, 1台宿主(win7)+几十台虚拟机(xp)(vm10的版本,估计可打开52台以上的虚拟机) b, 双网卡,其中一个网卡通过路由连接电信ADSL,一个直连集线器,可直接连接移动m ...