這是一篇幾年前寫下的文檔,最近打算根據這篇文檔重寫一下kettle插件的教程。結果各類理由,一推再推。今天索性將這篇文檔發佈出來,分享給你們,例子等有空再補上。這是一篇基於kettle3.2基礎上完成的kettle插件文檔。然而如今最新版的kettle的界面已經徹底變了樣了,可是那些組件仍是那麼熟悉。對數據處理稍微熟悉點的應該對kettle都不陌生,kettle是一個快速格式化和數據抽取的工具。好吧,入正題:java
若是你對kettle插件感興趣能夠到官網查看更多的資料:http://www.pentaho.com/product/data-integration。linux
最新源碼:https://github.com/pentaho/pentaho-kettle/git
kettle3.2源碼:http://sourceforge.net/projects/pentaho/files/Data%20Integration/3.2.0-stable/github
1、開發環境:eclipse
工具:Eclipse、MyEclipsesocket
JDK1.5或以上工具
依賴包:lib/kettle-core.jar測試
lib/kettle-db.jarui
lib/kettle-engine.jarspa
lib/kettle-ui-swt.jar
libswt/win32/swt.jar
2、轉換開發步驟:
一、複製org.pentaho.di.trans.steps.dummytrans包到指定包名。dummytrans包包含4個文件。DummyTrans.java, DummyTransData.java, DummyTransMeta.java, Messages.java。
二、使用eclipse裏的Refactor(重構)功能,把 DummyTrans* .java更名成 Mytrans *.java。而後實現相應的方法便可。
(1)MytransDialog.java:產生對話框的對象。
(2)Mytrans.java:負責數據處理和轉換,主要的轉換邏輯都在這裏實現。
(3)MytransMeta.java:負責元數據處理。包括加載xml轉換文件,校驗。
(4)MytransData.java:包含數據處理所涉及到的具體數據。
三、在org.pentaho.di.trans.steps.mytrans包下面建立messages目錄,在裏面添加相關的資源文件。例如,messages_en_US.properties,messages_zh_CN.properties等等。
四、將程序打成jar包。
五、準備一個png格式的圖片。
六、編寫插件xml(plugin.xml)
<?xml version="1.0" encoding="UTF-8"?> <plugin id="MyTransExample" -->組件ID(必須惟一) iconfile="icon.png" -->顯示的圖片 description="My Trans Example" -->轉換描述 tooltip="This is a trans example!" -->提示信息 category="Input" --->插件展示位置 classname="com.test.mytrans.MyTransMeta"> --->入口類 <libraries> <library name="kettle-plugin.jar"/> --->插件jar包 </libraries> <localized_category> --->插件展示位置 <category locale="en_US">Input</category> <category locale="zh_CN">輸入</category> </localized_category> <localized_description> --->插件描述 <description locale="en_US">This is a trans plugin example!</description> <description locale="zh_CN">這是一個插件轉換的例子</description> </localized_description> <localized_tooltip> --->提示信息 <tooltip locale="en_US">This is a trans plugin example!</tooltip> <tooltip locale="zh_CN">插件轉換例子</tooltip> </localized_tooltip> </plugin>
將編譯好的jar包、png圖片和xml文件置於kettle安裝目錄下的./plugins/steps/myForder(自定義一個文件夾)下,重啓kettle便可。
3、做業開發步驟:
一、分別複製org.pentaho.di.job.entries.abort、org.pentaho.di.job.entries.abort.messages和org.pentaho.di.ui.job.entries.abort包到指定包名
二、使用eclipse裏的Refactor(重構)功能,把JobEntry* .java更名成 MyJobEntry *.java。而後實現相應的方法便可。
三、修改國際化配置文件,。例如,messages_en_US.properties,messages_zh_CN.properties等等。
四、將程序達成相應jar包。
五、準備一個png格式的圖片。
六、編寫插件xml(plugin.xml)
與轉換plugin.xml相似。可參考kettle安裝目錄。./plugins/jobentries/DummyJob目錄下的plugin.xml文件
七、將編譯好的jar包、png圖片和xml文件置於kettle安裝目錄下的./plugins/jobentries/myForder(自定義一個文件夾)下,重啓kettle便可。
4、插件開發調試
一、Link Source調試:
(1)在Kettle3.2工程下面,進入plugins->steps目錄,發現裏面有個DummyPlugin目錄,其就是kettle官方提供的外部轉換插件,DPL.png、dummy.jar、plugin.xml,就是一個完整插件所須要的東西。
(2)在與DummyPlugin同級目錄裏面,創建文件夾TemplateStep, 將TemplateStepPlugin工程下面的icon.png、plugin.xml文件拷貝至此,jar包就不用了
(3)最重要的一步來了,你們右擊工程Kettle 3.2,選擇屬性Properties, 而後在左手邊選擇Java Build Path, 而後在上面的選項卡里面選擇Source,此時右邊就有幾個按鈕,
點擊Link Source按鈕,設置好你的插件源碼目錄以及目錄名字,見下圖:
運行。 關聯好以後,我們找到kettle的入口運行類Spoon.java,你們能夠經過快捷鍵ctrl+shift+R找出此類選擇調試運行便可,進入kettle工做臺,打開測試文件test.ktr.
二、kettle遠程調試
(1)遠程調試的關鍵是首先你的在kettle啓動配置裏面設置遠程調試參數,而後在eclipse裏面設置遠程調試監控的端口號,這樣就ok了。
(2)進入pdi-ce-3.2.0-stable.zip解壓出來的目錄,編輯啓動配置文件Spoon.bat,linux下固然是spoon.sh
在文件裏面加入這麼一句話:
set OPT=-Xdebug -Xnoagent -Djava.compiler=NONE -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=8285
位置參見下圖:
點擊Spoon.bat,進入kettle工做臺
(3)打開eclipse,進入菜單Run——>Debug Configurations,選擇左邊的Remote Java Application,右鍵新建一個遠程調試應用程序,設置以下圖,
端口就是上面參數裏面的端口8285,一切ok,選擇選擇下面的debug按鈕。
(4)在kettle工做臺,運行剛纔的測試轉換文件 test.ktr,eclipse開始監聽調試了,你們斷點設置就可。
注:部份內容來自互聯網,因爲時間久遠沒有記錄原文出處。若是您知道能夠聯繫我加上。謝謝!