最近又要重拾Kettle,之前的好多小技巧都忘记了,赶紧把上午研究的一个记录一下。
背景
故事是这样的,我有两个数据同步的任务,在转换中已经做好了,打算在作业中调度一下,然后,想着得几个日志啊,要不每天成功失败都不知道。
问题就出在这个记录日志上,记录日志得有开始时间、结束时间吧,结束时间直接在SQL中使用函数就行了,那开始时间呢?
解决方案
暂时想到了几种方式:
1.新建一个转换,生成变量,对变量进行初始化
在转换里,怎样对变量初始化,方法有很多,这里暂时不介绍了,一开始并不想用这种方法,嫌麻烦
2.在作业中使用JavaScript脚本验证
一直在尝试这种方法,屡试屡挫,我也是醉了,好在最后成功了,这里主要分享下这个方法。
完整流程是这样的
主要就是变量初始化,然后把变量输出一下
变量初始化
使用这个控件,注意,这个是Java 脚本控件,和前端页面那个HTML的JavaScript不一样
var start_time = new java.util.Date();
var sdf = new java.text.SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
parent_job.setVariable('start_time',sdf.format(start_time));
true;
这里主要关注的是怎样设置变量,记住kettle中的使用技巧,对象应该是默认初始化的;
这个true记得写,这是做逻辑判断的,默认就成功好了
日志控件
使用这个,可以把变量输出,看看对不对
直接调用就行了,执行后,会输出日志
好了,后面,我们只要在SQL中引用这个变量就行了,OK。
3.设置变量
本来以为可以直接使用这个控件,但是好像适合我用的变量,就放弃了
好了,这一篇先到这。