Kettle环境中的参数(全局/局部参数)传递
1.知识点
1)kettle中参数类型
kettle开发中的参数可分为全局参数和局部参数,不同的参数类型采用不同参数传递方式。
2)不同的参数类型如何使用
全局参数一般只在临时调试中使用,以为全局参数存储在kettle用户的kettle.properties文件中,运行依赖于kettle.properties文件,一般使用在所有开发流程都需要设置同样的参数时使用。
局部参数在kettle流程的开发中使用较多,主要的传递方式分为“设置变量/获取变量”,“转换命名参数”,“常量引用”三种。
参数(变量)在转换之间传递,参数(变量)传递时,每次只能传递一个变量。
2.全局参数的使用方式
定义全局变量的两种方式:
-
spoon界面中的编辑->编辑kettle.properties文件进行全局变量的定义。
在spoon界面中定义全局参数可以立即使用。全局参数是定义在kettle.properties文件中的参数,如果编写完成中的ktr文件中使用到了全局参数,但更换了ktr的运行环境,则ktr脚本无法获取到参数。
-
通过直接修改当前用户的kettle.properties文件的方式定义全局变量,在kettle.properties文件中以键值对的方式定义。
通过修改配置文件的方式定义参数kettle.properties文件修改之后需要重启kettle后才能生效
全局变量的使用方式:${变量名}
3.局部参数的使用方式
1)设置变量/获取变量
-
在ktr转换中设置变量
在转换中通过设置变量组件实现变量的设置,变量在当前转换中设置,不能在当前转换中使用,必须在下一转换中使用,在下一转换中通过获取变量组件实现上一转换中变量的获取使用。
使用方式:使用获取变量组件获取后直接使用
-
在job作业中设置变量
在job作业中也可以设置变量,在作业中通过设置变量设置完成后,在下一转换中可以使用获取变量组件获取或直接在使用时通过${变量名}使用(不需要使用获取变量组件)。
使用方式:使用获取变量组件获取后直接使用 或者直接在需要使用时使用${变量名}
2)转换命名参数
转换命名参数时定义在转换内部的变量,作用范围时转换内部。
转换命名参数的定义:转换内部空白处右键点击转换设置,在转换设置的命名参数中定义参数和参数值。也可只填写转换命名参数名,参数值可以从上一个转换(job流中)获取,此时需要在job页面中双击对于的转换图标在命名参数栏中填写要从上一转换中传递到转换内部的变量。
使用方式:直接在需要使用时使用${变量名}
3)常量传递
在任意组件都可以定义,定义后使用?获取使用。
常量定义的顺序即?对应的顺序。