本系列文章主要索引以下:html
1、ETL利器Kettle實戰應用解析系列一【Kettle使用介紹】java
2、ETL利器Kettle實戰應用解析系列二 【應用場景和實戰DEMO下載】程序員
3、ETL利器Kettle實戰應用解析系列三 【ETL後臺進程執行配置方式】sql
本文主要閱讀目錄以下:數據庫
一、Kettle概念windows
二、下載和部署app
四、Kettle使用及組件介紹post
ETL(Extract-Transform-Load的縮寫,即數據抽取、轉換、裝載的過程),對於企業或行業應用來講,咱們常常會遇到各類數據的處理,轉換,遷移,因此瞭解並掌握一種etl工具的使用,必不可少,這裏我介紹一個我在工做中使用了3年左右的ETL工具Kettle,本着好東西不獨享的想法,跟你們分享碰撞交流一下!在使用中我感受這個工具真的很強大,支持圖形化的GUI設計界面,而後能夠以工做流的形式流轉,在作一些簡單或複雜的數據抽取、質量檢測、數據清洗、數據轉換、數據過濾等方面有着比較穩定的表現,其中最主要的咱們經過熟練的應用它,減小了很是多的研發工做量,提升了咱們的工做效率,不過對於我這個.net研發者來講惟一的遺憾就是這個工具是Java編寫的。測試
Kettle是一款國外開源的ETL工具,純java編寫,能夠在Window、Linux、Unix上運行,綠色無需安裝,數據抽取高效穩定。
Kettle 中文名稱叫水壺,該項目的主程序員MATT 但願把各類數據放到一個壺裏,而後以一種指定的格式流出。
Kettle這個ETL工具集,它容許你管理來自不一樣數據庫的數據,經過提供一個圖形化的用戶環境來描述你想作什麼,而不是你想怎麼作。
Kettle中有兩種腳本文件,transformation和job,transformation完成針對數據的基礎轉換,job則完成整個工做流的控制。
三、1 安裝java JDK
1)首先到官網上下載對應JDK包,JDK1.5或以上版本就行;
2)安裝JDK;
3)配置環境變量,附配置方式:
安裝完成後,還要對它進行相關的配置纔可使用,先來設置一些環境變量,對於Java來講,最須要設置的環境變量是系統路徑變量path。
(1)要打開環境變量的設置窗口。右擊「個人電腦」,在彈出的快捷菜單中選擇「屬性」選項,進入「系統屬性」對話框,如圖所示。選擇「高級」標籤,進入「高級」選項卡,再單擊「環境變量」按鈕,進入「環境變量」對話框,如圖所示:
(2)在「Administrator的用戶變量」列表框中,選擇變量PATH,待其所在行變高亮後,單擊「編輯」按鈕,如圖所示。
(3)在彈出的「編輯系統變量」對話框中,將JDK安裝路徑下的bin目錄路徑設置到Path變量中,如圖所示。
編輯完後,單擊「肯定」按鈕,進行保存,環境變量Path的設置就正式完成。
注意:設置Path變量的路徑,必須是JDK安裝目錄中的bin目錄,有時候在JDK安裝目錄的同一層會有JRE的安裝目錄,所以請謹慎選取相關路徑,避免將路徑設置成JRE目錄下的bin目錄。
三、2 測試JDK配置是否成功
設置好環境變量後,就能夠對剛設置好的變量進行測試,並檢測Java是否能夠運行。
(1)單擊「開始」按鈕,選擇「運行」選項,在「運行」對話框中輸入cmd命令。
(2)以後單擊「肯定」按鈕,打開命令行窗口。
(3)在光標處輸入:javac命令,按下Enter鍵執行,便可看到測試結果
三、3 運行Kettle
|
Main Tree菜單列出的是一個transformation中基本的屬性,能夠經過各個節點來查看。
DB鏈接:顯示當前transformation中的數據庫鏈接,每個transformation的數據庫鏈接都須要單獨配置。
Steps:一個transformation中應用到的環節列表
Hops:一個transformation中應用到的節點鏈接列表 |
Core Objects菜單列出的是transformation中能夠調用的環節列表,能夠經過鼠標拖動的方式對環節進行添加。
Input:輸入環節 Output:輸出環節 Lookup:查詢環節 Transform:轉化環節 Joins:鏈接環節 Scripting:腳本環節 |
類別 |
環節名稱 |
功能說明 |
Input |
文本文件輸入 |
從本地文本文件輸入數據 |
表輸入 |
從數據庫表中輸入數據 |
|
獲取系統信息 |
讀取系統信息輸入數據 |
|
Output |
文本文件輸出 |
將處理結果輸出到文本文件 |
表輸出 |
將處理結果輸出到數據庫表 |
|
插入/更新 |
根據處理結果對數據庫表機型插入更新,若是數據庫中不存在相關記錄則插入,不然爲更新。會根據查詢條件中字段進行判斷 |
|
更新 |
根據處理結果對數據庫進行更新,若須要更新的數據在數據庫表中無記錄,則會報錯中止 |
|
刪除 |
根據處理結果對數據庫記錄進行刪除,若須要刪除的數據在數據庫表中無記錄,則會報錯中止 |
|
Lookup |
數據庫查詢 |
根據設定的查詢條件,對目標表進行查詢,返回須要的結果字段 |
流查詢 |
將目標表讀取到內存,經過查詢條件對內存中數據集進行查詢 |
|
調用DB存儲過程 |
調用數據庫存儲過程 |
|
Transform |
字段選擇 |
選擇須要的字段,過濾掉不要的字段,也可作數據庫字段對應 |
過濾記錄 |
根據條件對記錄進行分類 |
|
排序記錄 |
將數據根據某以條件,進行排序 |
|
空操做 |
無操做 |
|
增長常量 |
增長鬚要的常量字段 |
|
Scripting |
Modified Java Script Value |
擴展功能,編寫JavaScript腳本,對數據進行相應處理 |
Mapping |
映射(子轉換) |
數據映射 |
Job |
Sat Variables |
設置環境變量 |
Get Variables |
獲取環境變量 |
|
Main Tree菜單列出的是一個Job中基本的屬性,能夠經過各個節點來查看。
DB鏈接:顯示當前Job中的數據庫鏈接,每個Job的數據庫鏈接都須要單獨配置。
Job entries:一個Job中引用的環節列表
|
Job entries菜單列出的是Job中能夠調用的環節列表,能夠經過鼠標拖動的方式對環節進行添加。
每個環節能夠經過鼠標拖動來將環節添加到主窗口中。
並可經過shift+鼠標拖動,實現環節之間的鏈接。 |
類別 |
環節名稱 |
功能說明 |
Job entries |
START |
開始 |
DUMMY |
結束 |
|
Transformation |
引用Transformation流程 |
|
Job |
引用Job流程 |
|
Shell |
調用Shell腳本 |
|
SQL |
執行sql語句 |
|
FTP |
經過FTP下載 |
|
Table exists |
檢查目標表是否存在,返回布爾值 |
|
File exists |
檢查文件是否存在,返回布爾值 |
|
Javascript |
執行JavaScript腳本 |
|
Create file |
建立文件 |
|
Delete file |
刪除文件 |
|
Wait for file |
等待文件,文件出現後繼續下一個環節 |
|
File Compare |
文件比較,返回布爾值 |
|
Wait for |
等待時間,設定一段時間,kettle流程處於等待狀態 |
|
Zip file |
壓縮文件爲ZIP包 |
你們若是閱讀了本系列文章感受有用的話就狂點【推薦】啊哈哈!