刚接触kettle不久,想要在作业中创建一个变量,然后在作业的所有转换中使用,研究了半天,终于搞定,分享给大家
一、【作业】的设置
创建一个作业,并添加下面5个组件(开始组件、设置变量组件、JavaScript组件、转换组件、写日志组件)
![](https://i-blog.csdnimg.cn/blog_migrate/3211b9506a148cc0369358a061731917.png)
设置变量:
注意设置变量有效范围:当前作业有效
![](https://i-blog.csdnimg.cn/blog_migrate/c75d934ab1b1a0c5cf77df063d8370c8.png)
JavaScript:
通过读取当前时间,并给变量赋值
![](https://i-blog.csdnimg.cn/blog_migrate/4cd282eaba5d7a9e285f9115a17d6f0a.png)
代码如下:
var dateFormat = new java.text.SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
var nowdatetime = new java.util.Date();
// 获取当前时间
nowdatetime.setDate(nowdatetime.getDate());
var nowtime = dateFormat.format(nowdatetime);
parent_job.setVariable("now_time",nowtime);
true;
转换
注意勾选:将所有参数值都传递给子转换
![](https://i-blog.csdnimg.cn/blog_migrate/0c604b4b5edc3ddfdd65fe5babc35901.png)
写日志:
![](https://i-blog.csdnimg.cn/blog_migrate/96e46c048e5ca4e0301c26bcd831210a.png)
二、【转换】的设置
很简单,设置下面两个即可
![](https://i-blog.csdnimg.cn/blog_migrate/4ef9bf9e18813ac4ba7d553648dedb49.png)
获取变量:
![](https://i-blog.csdnimg.cn/blog_migrate/aeeb9adbe40e04fae791a723bb41d35c.png)
写日志:
![](https://i-blog.csdnimg.cn/blog_migrate/235b1f093e8277c02b954030083bbbaa.png)
执行结果
由日志可知:作业中及转换中都已经可以获取到当前时间变量的值
![](https://i-blog.csdnimg.cn/blog_migrate/d4cf866e8538e75ef881fee9c3593cac.png)