天天看点

Kettle中的“JavaScript脚本”组件如何使用自定义jar

在使用Kettle时,如果给定的组件中不能满足我们的需求,可以使用“JavaScript脚本”组件来使用我们自定义的功能。

Kettle版本:8.0

背景:要将传入的时间字符串转换为时间戳(试了“字段选择”组件来修改元数据类型,但是达不到想要的效果)

如:传入“2019-09-05 10:14:16” ,得到结果“1567649656000”

这里我们可以通过编写Java代码实现这个转换功能:

package dateTrans;
import java.text.ParseException;
import java.text.SimpleDateFormat;

public class date2timestamp {
    public static Long getTimestamp(String str){
		Long timestamp = null;
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        try {
            timestamp = sdf.parse(str).getTime();
        } catch (
                ParseException e) {
            e.printStackTrace();
        }
        return  timestamp;
    }
}
           

然后将这个代码打成jar包,放在kettle安装目录的lib目录下,然后重启Spoon(一定要重启)

我们在“脚本”类别中选择“JavaScript脚本”组件,打开:

这里如何引入我们自定义的包?

要通过new一个对象来实现,这里的Packages为固定写法,dateTrans为包名,date2timestamp为类名

然后就可以通过这个对象来调用date2timestamp的静态方法getTimestamp了,将上一个步骤中的字段date作为参数(这里需要注意一下,这个步骤会对上一步骤中传入的每一行执行一次我们编写的转换)

然后定义一个变量timestamp来接收结果,并作为字段传入下一步骤。(在下一步骤中通过timestamp字段就可以获取转换后的每一个时间戳)

Kettle中的“JavaScript脚本”组件如何使用自定义jar

继续阅读