KETTLE的参数设置

KETTLE有多种参数,我主要用到的,分别是parameter,argument和自定义的参数。

1、parameter
使用这个参数相对比较简单,可以在job的空白处右键选job setting,可以看到tab parameter选项
在parameter选项可以定义参数的名字和默认值,
图形界面运行job时,可以直接在运行JOB前的lauch面板输入这个参数的值,

命令行运行job时,可以使用-param指定参数的值
For example 
kitchen.sh -file=/home/kettle/test.kjb -param:VDATE=20150101

2、argument
和parameter一样
图形界面运行job时,可以直接在运行JOB前的lauch面板输入这个参数的值

命令行运行时,直接在命令行后输入 
For example 
kitchen.sh -file=/home/kettle/test.kjb 20150101

如何在流程中取得这个参数的值呢
首先,和参数设置有关的步骤,都要使用transformation进行
新建一个transformation,使用get system info步骤来获得参数值

转换内部如下图
get system info 输出指向 set variable步骤


打开get system info,在type选项选择commandline argument 1


打开set variables步骤,直接点击get fields,得如下图所示


至此使用vdate参数接收了命令行参数的值

3、使用其他值来设置参数
在公司,经常需要从配置表里取数据作为参数使用

这里使用sysdate作为示例,数据库环境oracle
使用了两个transformation来配合设置

数据流向
transformation1------>transfromation2

第一个transformation,主要是从数据库表中取数据进入kettle的流里面,内部如下

第一个步骤是table input,使用一个SQL,查出格式化后的昨天的日期



第二步select values,按get fields to select



第三步copy rows to result

第二个transformation,从流中取出数据,并设置为variable,内部如下


第一步get rows from result,这里自己在fieldname上填入前面步骤中传入的数据


第二步 set variables,可以参考上面的设置get system info的步骤,一样的

4、参数设置完毕后,我们可以使用了,很多地方都能使用参数,除了脚本等地方,很多例如文件名,文件路径,数据库连接等,都可以使用参数
例如下图的SQL script


ID这个variable设置好后,就可以以${ID}的形式使用
在某些步骤,要勾上use variable substitution,参数才能生效

猜你喜欢

转载自blog.csdn.net/maenlai0086/article/details/88636810