天天看點

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

繼續閱讀