1. Kettle簡介
Kettle是一個開源的ETL工具,純java編寫,可以在Window、Linux、Unix上運行,綠色無需安裝,數據抽取高效穩定,基本的數據抽取、轉換、加載,他都可以。
可以把各種數據放到一個壺里,然后以一種指定的格式流出,比如一個mysql數據庫的數據同步到一個Postgres數據庫。
它允許你管理來自不同數據庫的數據,通過提供一個圖形化的用戶環境來描述你想做什么,而不是你想怎么做。
Kettle中有兩種腳本文件,transformation和job,transformation完成針對數據的基礎轉換,job則完成整個工作流的控制。
2. 下載Kettle
Kettle可以在http://kettle.pentaho.org/網站下載。
3. 運行Kettle
下載kettle壓縮包,因kettle為綠色軟件,解壓縮到任意本地路徑即可。
點擊Spoon.bat直接運行軟件。(注:需要提前安裝好JDK環境)
4. 將數據轉換成Excel
為了實現這個功能,我們需要:
1.連接到數據庫
2.導出為Excel
首先,我們新建一個轉換:
新建,之后,我們可以看到,工具箱中,有很多的控件,我們都可以使用。
新建數據庫連接(注:需要在軟件的根目錄lib文件夾下添加所連接數據庫的驅動jar包):
填寫相關的鏈接信息:
測試鏈接是否成功(可省略):
好了,可以連接到數據庫了,下面,我們得把數據導出啊,我們需要使用輸入這個控件。
輸入下面,有很多的控件,我們這次只使用表輸入,因為我們是直接從數據庫中拿數據。
點擊獲取SQL查詢語句,彈出數據庫瀏覽器彈窗:
選擇要導出的表:
點擊動作可以進行數據的預覽:
同時也可以選定好表之后點擊表輸入彈窗的正下方預覽按鈕預覽數據:
源頭好了,同樣的思路,我們需要一個目標,就是輸出了,輸出到Excel:
同樣的,我們托好之后,雙擊就可以編輯了,這里,我們主要關注2個配置,一個是excel保存地址,和字段:
我們選擇一個地址,然后得,看下字段那個tab。
我們單擊,獲取字段,就可以從源頭獲取表中的字段了,當然,我們可以只導出,我們需要的字段。
一步一步來的話,上面獲取,可能會獲取不到,因為,有一步,需要將2個控件,連起來,源頭有了,目標也有了,得讓他們關聯起來啊,再Kettle中,這個連線叫做Hop(跳),就像一個管道一樣,將數據流從一個點,指向另一個點。(也可按住Shift鍵鏈接)
和Java里面,一樣,綠色的話,就代表成功了!
5. 將數據從一張表中復制到另一張表
同樣的,首先我們需要一個目標,就是輸出了,輸出到表:
雙擊表輸出步驟按鈕,彈出表輸出相關選項設置窗口,點擊目標表瀏覽按鈕,彈出數據庫瀏覽器窗口進行數據庫目標輸出表的選擇:
選擇完畢之后,勾選指定數據庫字段選框,將tab切換到數據庫字段:
同樣的和導出excel一樣一步一步來的話,上面獲取,可能會獲取不到,具體為什么就不再贅述可以查看導出excel(也可按住Shift鍵鏈接):
點擊獲取字段會彈出一個詢問是否新增新的、新增所有或清除並新增的窗口:
我們點擊清除並新增:
點擊輸入字段映射:
此時我們可以看見表字段和流字段已經一一對應上了。(注:也可以根據自己的需求刪除或另外新增其他字段,可隨自己需要自定義。)
點擊確定
此時點擊運行:
綠色的話,就代表成功了!