kettle參数、变量具体解说
kettle 3.2 曾经的版本号里仅仅有 variable 和 argument,kettle 3.2 中。又引入了 parameter 概念。variable 即environment variables(环境变量或全局变量)。即使是不同的转换它们也拥有相同的值;而argument(位置參数)和parameter(命名參数),能够映射为局部变量,仅仅针对一个特定的转换,比方像是限定结果集的大小和过滤条件。
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)
1.1、kettle.properties文件里定义全局变量
打开文件。直接在里面定义,如: TODAY=to_char(sysdate,‘yyyy-mm-dd‘),这里支持数据库函数,说的更直白点,就是这里定义是个啥,那么在transformation里边取到的它就是啥。在须要的地方,直接%%V_YES_DATE%%。或者${V_YES_DATE}就能够得到。须要提醒的是假设编辑中文。须要navationtoascii工具或在eclipse中编辑。定义后保存重新启动spoon才生效。
2、 garument(位置參数)
kettle 3.2 曾经的版本号里仅仅有 argument,也叫Positional arguments,就是最多能设置的 10 个命令行參数。通过在命令行參数的位置来差别
3、 parameter(命名參数)
在 kettle 3.2 中,又引入了 parameter 概念,能够通过名称来差别,并能够在命令行中通过/param:name=value 的方式设置设置參数, 另外/listparam 能够列出一个ktr 或 kjb 里定义的parameter。
命名參数能够在转换或作业的设置对话框中定义,定义时给定默认值;当在SPOON中执行作业或转换时。在执行对话框中输入命名參数的值。
在命令行中执行时,也能够通过-param:name=value给每一个命名參数赋值,param:name=value在命令行中一个总体块。视为命令的一个參数。
例:执行job.kjb文件,有两个參数files.dir=/opt/files 、max.date=2010-06-02
Linux: ./kitchen.sh-file:job.kjb -param:files.dir=/opt/files -param:max.date=2010-06-02
Windows: Kitchen.bat -file:job.kjb “-param:files.dir=/opt/files”“-param:max.date=2010-06-02″
命名參数可作为变量,在执行时命名參数并映射为变量。假设你定义了命名參数为foo,你能够在不论什么地方引用通过${foo}.