延續上一篇,此篇將介紹如何動態傳遞參數給Job使用,介紹兩種方式:
1.透過Kettle GUI傳遞參數
2.透過Command Line傳遞參數
開啟 \data-integration\samples\jobs\arguments\Set arguments on a transformation.kjb
從上一篇得知此Job的Transformation Entry是執行Run transformation.ktr檔案,其中有使用到Get System Info Step來得取三個參數,名稱分別為One、Two與Three
在Run Options畫面,按下Arguments(legacy)按鈕
會出現01、02與03三個參數,分別對應One、Two與Three,Value的部份我們可以自行輸入任意值,完成後按下OK按鈕,再按下Run按鈕
開啟 \data-integration\samples\transformations\output\arguments-test.xls,在這邊會發現,Excel寫入的值跟我們傳入的參數值不同
請清空Run transformation.ktr Entry的Argument頁籤中的預設參數,如果你今天是想使用靜態參數就可以在這邊設定,但此篇是要以動態的方式給值,所以請按Delete鍵進行預設參數的刪除
再重新執行一次,成功接收參數並寫入Excel檔案囉!
切換到解壓縮kettle的目錄下,輸入以下指令
kitchen.bat /file:<directory>\<job or transformation name> arg1 arg2 arg3
D:\data-integration>kitchen.bat /file:D:\data-integration\samples\jobs\arguments
\Set arguments on a transformation.kjb 111 222 333
執行錯誤,檔案名稱不能有空白
請複製job並更名,以下是將空白改為底線:
Set arguments on a transformation.kjb → Set_arguments_on_a_transformation.kjb
D:\data-integration>kitchen.bat /file:D:\data-integration\samples\jobs\arguments
\Set_arguments_on_a_transformation.kjb 111 222 333
執行完成
成功接收參數並寫入Excel檔案囉!
Transformation使用GUI的方式與Job類似,一樣是Run Options裡面設定,另外補充透過Commamd Line執行Transformation的指令:
pan.bat /file:<directory>\<transformation name> arg1 arg2 arg3