首页 > 其他 > 详细

Kettle学习笔记(六)

时间:2014-03-18 10:03:52      阅读:510      评论:0      收藏:0      [点我收藏+]

   今天发现之前的笔记没有提到kettle中参数的传递,只是简单的说了一下,java程序调用kettle脚本的时如何通过java程序向kettle脚本进行传递参数,但是没有说到kettle脚本中的step之间如何传递参数。

   我使用kettle有一段时间了,用到的参数传递只有两种方式:

   1、全局形式的变量作为参数,这种参数是属于全局共享的。这样说可能不是很严格,在kettle的transfromation(转换)中是共享的,也就是在该transformation中任何step都可以使用。

   2、局部形式的变量作为参数,这种参数我使用的不是很熟练,只是可以完成简单的参数传递而已。这种变量参数只是可以step之间进行参数传递。


   接下来简单描述一下怎么使用这些参数:

   首先我们创建一个transformation,然后添加一个step(Set Variables),设置一下参数的名称:

bubuko.com,布布扣

   这样就定义好了一个参数,我们在表输入中使用这个参数,如图所示:

bubuko.com,布布扣

   这样正确使用了参数了,下面我们使用write to log来测试一下,是否正确传入参数:

bubuko.com,布布扣

   运行的时候我们传入参数,点击执行:

bubuko.com,布布扣

   注意红线位置,就是我需要传入的值,然后启动,看一下结果:

bubuko.com,布布扣

   我把重要的输出日志,截图下来了。很明显可以看到,sql语句中的参数部分已经更换为我们传入的值了。


   下面是第二种方式,这种方式我掌握的不好,还请大家多多见谅了。如果哪里有问题请指正,并多多交流。

   在上面的基础上,我们接着实现第二种方式的列子:

bubuko.com,布布扣

   由于上一个表输入select两个字段,那么也就说有两个数据流可以作为参数,而且使用顺序必须要与之前输出的数据流顺序一致,也就是说表输入中为city、zip,那么下一个表输入中的参数使用也必须要是第一为city,第二为zip,必须对应。然后说明一下,需要选一下插入数据步骤为哪个,然后每个数据流都执行一次,也就是说表输入的每一条记录都会执行一次表输入2.这样就可以保证数据完整性,这个可以根据需求来选择。

   下面配置一下write to log:

bubuko.com,布布扣

好了执行一下,看下结果:

bubuko.com,布布扣

bubuko.com,布布扣

参数就写到这里吧!有不对的地方希望大家多交流~

本文出自 “ice_world” 博客,请务必保留此出处http://iceworldvip.blog.51cto.com/5438460/1378173

Kettle学习笔记(六),布布扣,bubuko.com

Kettle学习笔记(六)

原文:http://iceworldvip.blog.51cto.com/5438460/1378173

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!