Kettle學習筆記009之指令碼元件
主要介紹 【Java程式碼】元件,【SQL】元件,【Shell】元件
【Java程式碼】元件
序言:
【Java程式碼】元件是個自定義外掛,用於當Kettle內建的元件無法滿足需要的時候。
例項目標:把中文字串轉為拼音
第一步:將寫好的getPinYin方法整塊複製到processRow方法後面:
第二步:然後修改processRow方法裡面的/* TODO:部分,get(Fields.In, "name").getString(r),表示獲取資料流中指定的欄位資料;get(Fields.Out, "ename").setValue(r, ename)
第三步:在最下面配置一下輸出欄位資訊,有幾個輸出欄位就需要配置幾行:
第四步:匯入依賴包,可以從程式碼中看出中文轉拼音我是用的pinyin4j,向kettle lib目錄下放入pinyin4j的jar包,然後重新啟動Spoon
【SQL】元件
(1) 作業中的SQL元件通常是用來執行DDL語句的。
例項:
第一步:建立作業
第二步:編輯元件
第三步:儲存,執行
【Shell】元件
(1)【Shell】元件是用來執行Windows下的批處理指令碼,即bat檔案。
例項:
第一步:建立作業
第二步:編輯元件
a. 勾選【插入指令碼】表示在該元件中寫指令碼,右側的【指令碼】選項卡即是寫指令碼的位置,若不勾選【插入指令碼】,則是通過執行指定指令碼檔案的方式。不建議勾選【插入指令碼】選項,因為勾選【插入指令碼】後,Kettle執行Shell的時候會先將指令碼內容寫到一個臨時批處理檔案中再去執行,很容易出現中文亂碼情況。
b.【指令碼檔名】配置項,用於指定批處理指令碼檔案位置,勾選【插入指令碼】後,該項不可配置。
c.【工作路徑】配置項,用於指定指令碼工作路徑,通俗的說,就是在哪個目錄下執行這個指令碼。
d. 最下面的【欄位】列表,用於配置指令碼入參,可以使用引數變數。
第三步:編寫指令碼檔案內容
::關閉回顯
@echo off
::進入指令碼所在目錄
cd /D %~dp0
::在當前目錄建立資料夾ShellTest
mkdir ShellTest
::複製指令碼檔案到ShellTest目錄
copy Shell-test.bat shellTest
echo %1> ShellTest\hello.txt
第四步:儲存執行。
提示:轉換-應用分組下有一個【執行SSH命令】的元件,是向Linux作業系統下遠端執行Linux Shell的,有興趣的可以去看看。