Java 向 kettle8.0 传递参数总结

1.传递参数到转换中
1.1. 通过设置Trans的variable的key、value值


1.2. 源码中,直接将我们的key、value存放到了全局的properties中


1.3. 在转化中可直接通过EL表达式获取参数:${yourkey}

1.4. 通过设置转换中的parameterValue的key、value值


1.5. params是从我们定义的命名参数中解析的map


1.6. 命名参数的key必须和我们传入的key值向同才能将value值存放至params中,在kettle中同样通过EL表达式获取数据${yourkey}


2. 传递参数到作业中
2.1. 通过设置全局的properties将我们的参数传递给kettle,如果作业中包含了转换,需要保证key值不能冲突


2.2. 通过设置JobMeta的parameterValue可将参数传递给kettle,创建JobMeta时kettle会解析对应得xml格式的.kjb文件,并初始化命名参数的map,创建Job对象kettle并不会像创建Trans那样将TransMeta中的命名参数复制给Trans,所以此时的Job中的命名参数size为0,如果通过job.setParameterValue()函数并不能将我们的参数传递给kettle。


2.3. kettle源码中,初始value值为空字符串,需要在job中设定命名参数的变量名作为key值才能将自己的参数对应传递给kettle,接下来在对应需要使用的地方用EL表达式即可获取${yourkey}


原文:https://blog.csdn.net/weixin_38617839/article/details/81560086 

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Java调用Kettle的CallShell参数主要用于执行Shell脚本或命令,并将脚本的输出结果返回到Java程序中。通过CallShell参数可以实现与外部Shell命令的交互和数据传递。 在Java中调用Kettle的CallShell参数,首先需要创建一个Job对象,并通过JobEntrySpecial类型的对象设置CallShell参数。代码示例如下: ```java Job job = new Job(null, null); JobEntrySpecial callShell = new JobEntrySpecial(); callShell.setName("Call Shell"); callShell.setSpecification("shell_script.sh"); // 设置Shell脚本的路径或命令 job.setEntry(callShell); job.start(); // 执行Job // 获取Shell脚本的输出结果 String output = callShell.getOutput().toString(); System.out.println(output); ``` 在以上代码中,我们创建了一个Job对象,并通过JobEntrySpecial来设置CallShell参数。其中,setName()方法设置任务的名称,setSpecification()方法设置Shell脚本的路径或命令。 执行Job后,可以通过getOutput()方法获取到Shell脚本的输出结果,并将结果打印出来。 需要注意的是,在执行Shell脚本之前,我们需要在Kettle中配置好Shell脚本的路径或命令,并且保证该脚本具有可执行权限。 总结起来,通过Java调用Kettle的CallShell参数可以方便地执行Shell脚本或命令,并将其输出结果返回到Java程序中。这样可以在Kettle的ETL过程中与外部Shell命令进行交互,实现更加灵活和强大的数据处理功能。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值