13.1.3. 变量和参数

kettle 3.2 以前的版本里只有 variable 和 argument,kettle 3.2 中,又引入了 parameter 概念。

  • variable:environment variables(环境变量),即使是不同的转换它们也拥有同样的值。

  • argument:位置参数

  • parameter:命名参数,可以映射为局部变量,只针对一个特定第转换,比如像是限定结果集的大小和过滤条件。

13.1.3.1. variable(环境变量或全局变量)

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

变量可以用在转换或作业中,可以通过在转换中使用 Set Variable 步骤定义或在kettle.properties文件中定义,文件的路径默如下:

$HOME/.kettle (Unix/Linux/OSX)

C:Documents andSettings<username>.kettle(Windows)

C:Users<username>.kettle(Windows Vista)

kettle.properties文件中定义全局变量

打开文件,直接在里面定义,如: TODAY=to_char(sysdate,’yyyy-mm-dd’),这里支持数据库函数,说的更直白点,就是这里定义是个啥,那么在transformation里边取到的它就是啥。在需要的地方,直接%%V_YES_DATE%%,或者${V_YES_DATE}就可以得到。需要提醒的是如果编辑中文,需要navationtoascii工具或在eclipse中编辑。定义后保存重启spoon才生效。

13.1.3.2. arument(位置参数)

kettle 3.2 以前的版本里只有 argument,也叫Positional arguments,就是最多能设置的 10 个命令行参数,通过在命令行参数的位置来区别

13.1.3.3. parameter(命名参数)

在 kettle 3.2 中,又引入了 parameter 概念,可以通过名称来区别,并可以在命令行中通过/param:name=value 的方式设置设置参数, 另外/listparam 可以列出一个ktr 或 kjb 里定义的parameter。

https://img-blog.csdn.net/20141017171203890?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvbmV3ZWFzdHN1bg==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast

命名参数可以在转换或作业的设置对话框中定义,定义时给定默认值;当在SPOON中运行作业或转换时,在运行对话框中输入命名参数的值。在命令行中运行时,也可以通过-param:name=value给每个命名参数赋值,param:name=value在命令行中一个整体块,视为命令的一个参数。

例:运行job.kjb文件,有两个参数files.dir=/opt/files 、max.date=2010-06-02

./kitchen.sh -file:job.kjb -param:files.dir=/opt/files -param:max.date=2010-06-02
Kitchen.bat -file:job.kjb “-param:files.dir=/opt/files” “-param:max.date=2010-06-02″

命名参数可作为变量,在运行时命名参数并映射为变量。如果你定义了命名参数为foo,你可以在任何地方引用通过${foo}.