1.kettle簡介java
Kettle是一款國外開源的ETL工具,純java編寫,能夠在Windows、Linux、Unix上運行,數據抽取高效穩定。linux
Kettle 中文名稱叫水壺,該項目的主程序員MATT 但願把各類數據放到一個壺裏,而後以一種指定的格式流出。程序員
Kettle中有兩種腳本文件,transformation和job,transformation完成針對數據的基礎轉換,job則完成整個工做流的控制。sql
Kettle家族目前包括4個產品:Spoon、Pan、CHEF、Kitchen。數據庫
SPOON 容許你經過圖形界面來設計ETL轉換過程(Transformation)。windows
PAN 容許你批量運行由Spoon設計的ETL轉換 (例如使用一個時間調度器)。Pan是一個後臺執行的程序,沒有圖形界面。oracle
CHEF 容許你建立任務(Job)。 任務經過容許每一個轉換,任務,腳本等等,更有利於自動化更新數據倉庫的複雜工做。任務經過容許每一個轉換,任務,腳本等等。任務將會被檢查,看看是否正確地運行了。app
KITCHEN 容許你批量使用由Chef設計的任務 (例如使用一個時間調度器)。KITCHEN也是一個後臺運行的程序。工具
kettle的最新下載地址:https://community.hitachivantara.com/docs/DOC-1009855學習
kettle 8.2版本能夠支持windows、linux和mac os操做系統
官方文檔:https://wiki.pentaho.com/display/EAI/.01+Introduction+to+Spoon
kettle中的一個圖形用戶界面叫spoon,spoon能夠設計和運行轉換和做業。
在windows中執行spoon.bat,在Lunix系統中執行spoon.sh;
Spoon是一個圖形設計工具,用來設計和測試數據交換處理流程,也能夠經過命令行(終端)執行處理流程。
在spoon中設計做業和轉換,kettle提供兩種方式存儲:資源庫和文件;
若是你選擇資源庫,spoon第一次啓動時須要建立資源庫;選擇文件方法,做業保存文件是的擴展名是KJB,轉換文件的擴展名爲KTR,爲了簡化學習,下面教程採用後者。
點擊後等待一下子,開啓較慢;打開後的界面以下:
Kettle提供了資源庫方式的方式來整合全部的工做,可是由於資源庫移植不方便,因此咱們選擇沒有資源庫;
1)建立一個新的transformation,點擊 保存到本地路徑,例如保存到D:/etltest下,保存文件名爲EtltestTrans,kettle默認transformation文件保存後後綴名爲ktr;
2)建立一個新的job,點擊 保存到本地路徑,例如保存到D:/etltest下,保存文件名爲EtltestJob,kettle默認job文件保存後後綴名爲kjb;
在文件->新建裝換。
新建轉換後在左邊的主對象樹中創建DB鏈接用以鏈接數據庫。如圖所示:
創建數據庫鏈接的過程與其餘數據庫管理軟件鏈接數據庫相似。
DB鏈接—>新建
輸入所要鏈接數據庫的信息,點擊測試看是否正確鏈接
注意:在數據庫連接的過程當中,可能會報某個數據庫驅動鏈接找不到的異常。那是由於你沒有對應的數據庫連接驅動,請下載對應驅動後,放入kettle的lib文件夾,重啓便可
若是本地安裝着Oracle數據庫的話,能夠從安裝路徑:E:\app\product\11.2.0\dbhome_1\jdbc\lib(個人路徑),通常選擇ojdbc6.jar。
左邊面板選擇:核心對象—>輸入—>表輸入
雙擊拖過來的表,能夠進行編輯;
選擇數據庫鏈接和編輯sql語句,在這一步能夠點擊預覽,查看本身是否鏈接正確。確認無誤後,點擊肯定。
1.在左邊面板中選擇:核心對象à輸出->插入\更新 如圖所示:
2. 編輯插入更新:
首先:表輸入鏈接插入更新。
選中表輸入,按住shift鍵,拖向插入更新。
3.而後:雙擊插入更新,編輯它。編輯完成點擊肯定
此處須要注意的是,輸入表,與輸出的表,都要真實存在。
4.啓動測試看執行效果
點擊執行按鈕
查看執行結果:
執行前表數據
能夠看到,輸出表ID爲1,2,3的age字段數據數據進行了更新,ID爲4,5的name,age字段數據進行了更新,id爲6的數據進行了插入
使用做業能夠定時或週期性的執行轉換,新建一個做業。並從左邊面板拖入start 和轉換。
雙擊start能夠編輯,能夠設置執行時間等等
點開裝換,能夠設置須要執行的轉換任務,好比能夠執行上面咱們作的轉換,XXX.ktr
最後點擊運行便可。