關於如何根據傳入的不同參數,達到動態運行作業的目的,這里不介紹。只提供一個思路,就是不同的調度進程調度同一個Kettle文件時,傳入了不同的參數,從而得到不同的數據。
如下圖所示:
1. 先設置參數名稱,雙擊Kettle空白處,選擇Parameters 選項卡
2. 輸入一個參數名,默認值可以不給
3. 測試作業里有兩個主要步驟
l set variables 用來把獲取到的參數值,設置成一個變量
l write to log 用來打印變量
4. set variables 中需要設置變量名稱和變量值
變量名是arg1 ,變量的值是通過命名參數獲取進來的。所以使用${} 括起來。
5. write to log 就是簡單的打印變量
6. 點擊運行作業,然后給參數一個值
對於Linux環境需要些腳本運行,運行腳本類似下面
/kettle/data-integration7/kitchen.sh /file:testargument.kjb /param:"myarg1=123inb"
其中kitchen.sh 是kettle的調用入口
testargument.kjb 是作業文件的路徑和名字,我的文件放在當前目錄下,所以沒有寫路徑
指定參數時使用雙引號括起來。如果有多個參數需要指定,那么需要寫多個/param
需要注意,如果多個/param 中指定了相同的參數名,將會報錯
Exception in thread "main" java.lang.reflect.InvocationTargetException
7. 查看運行結果