Kettle全局参数使用


 Kettle全局参数使用

(一) 参数介绍

1)       variable变量

主要是用来设定环境变量的,比如最常见的:文件的存放地址,smtp的配置等等,你也可以把它认为是编程语言里面的全局变量,即使是不同的转换它们也拥有同样的值。

使用方法:用Set Variable定义,用%% var %%,或者${ var }调用。

2)      garument位置参数

也叫Positional arguments,就是最多能设置的 10 个命令行参数,通过在命令行参数的位置来区别,pan执行转换时传入的参数,在sql中用可以用?占位,获取从上一步数据流中的参数。感觉位置参数在一个数据流中使用。

3)      parameter命名参数

命名参数可以在转换或作业的设置对话框中定义,定义时给定默认值;当在SPOON中运行作业或转换时,在运行对话框中输入命名参数的值。在命令行中运行时,也可以通过-param:name=value给每个命名参数赋值,param:name=value在命令行中一个整体块,视为命令的一个参数。命名参数可作为变量,在运行时命名参数并映射为变量。如果你定义了命名参数为foo,你可以在任何地方引用通过${foo}.

 

不管哪种参数都可以在sql中用${var}或者%%var%%表示

(二) 参数使用案例:

应用场景:

建一张配置表,记录每次跑批的批次号,批次号是根据跑数的时间生成的字符串。在数据抽取的时候状态是1,等数据抽取完将状态为更改2,需要设置一个全局变量在不同的转换中引用。

1)        设置变量

新建一个转换,将BATCH_NO字段设置成变量名称batchNo,作用域在整个root job中。

2)        sql中引用变量

勾选使用变量替换,在insert into 的时候用'${batchNo}'调用变量

3)        表输入中引用变量

同样勾选使用变量替换

4)        最后更新状态

变量设置就完成啦。