java 命名参数动态替换_使用Kettle的命名参数动态执行作业

关于如何根据传入的不同参数,达到动态运行作业的目的,这里不介绍。只提供一个思路,就是不同的调度进程调度同一个Kettle文件时,传入了不同的参数,从而得到不同的数据。

如下图所示:

779c7917b4843c5f7a2e4ddb1748475c.png

1. 先设置参数名称,双击Kettle空白处,选择Parameters 选项卡

2. 输入一个参数名,默认值可以不给

5a4091cb8b6ee268a55fc5b1c6621182.png

3. 测试作业里有两个主要步骤

59c8eb5b7ed8dc32cd25fecee6124ba1.png

l set variables 用来把获取到的参数值,设置成一个变量

l write to log 用来打印变量

4. set variables 中需要设置变量名称和变量值

9ffac7197a766266fd82eeefd5f31080.png

变量名是arg1 ,变量的值是通过命名参数获取进来的。所以使用${} 括起来。

5. write to log 就是简单的打印变量

6bb4acc6ef8cc128a08291143e5b7575.png

6. 点击运行作业,然后给参数一个值

a2bccf7f3d5cf724d31a7b236726482a.png

对于Linux环境需要些脚本运行,运行脚本类似下面

/kettle/data-integration7/kitchen.sh /file:testargument.kjb /param:"myarg1=123inb"

其中kitchen.sh 是kettle的调用入口

testargument.kjb 是作业文件的路径和名字,我的文件放在当前目录下,所以没有写路径

指定参数时使用双引号括起来。如果有多个参数需要指定,那么需要写多个/param

需要注意,如果多个/param 中指定了相同的参数名,将会报错

Exception in thread "main" java.lang.reflect.InvocationTargetException

7. 查看运行结果

0702a6e4781c6a052d819cd138c4b7eb.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值