本系列文章主要索引如下:
一、ETL利器Kettle實戰應用解析系列一【Kettle使用介紹】
二、ETL利器Kettle實戰應用解析系列二 【應用場景和實戰DEMO下載下傳】
三、ETL利器Kettle實戰應用解析系列三 【ETL背景程序執行配置方式】
本文主要閱讀目錄如下:
1、Kettle概念
2、下載下傳和部署
3、Kettle環境配置
4、Kettle使用及元件介紹
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則完成整個工作流的控制。
Kettle可以在http://kettle.pentaho.org/網站下載下傳
下載下傳kettle壓縮包,因kettle為綠色軟體,解壓縮到任意本地路徑即可
3、Kettle環境配置(有Java環境的直接忽略此章節)
3、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目錄。
3、2 測試JDK配置是否成功
設定好環境變量後,就可以對剛設定好的變量進行測試,并檢測Java是否可以運作。
(1)單擊“開始”按鈕,選擇“運作”選項,在“運作”對話框中輸入cmd指令。
(2)之後單擊“确定”按鈕,打開指令行視窗。
(3)在光标處輸入:javac指令,按下Enter鍵執行,即可看到測試結果
3、3 運作Kettle
進入到Kettle目錄,如果Kettle部署在windows環境下,輕按兩下運作spoon.bat或Kettle.exe檔案,出現如下界面:
這樣配置環境這一塊基本上就完成了。
4.1 Kettle使用
Kettle提供了資源庫方式的方式來整合所有的工作,但是因為資源庫移植不友善,是以我們選擇沒有資源庫;
1)建立一個新的transformation,點選 儲存到本地路徑,例如儲存到D:/etltest下,儲存檔案名為EtltestTrans,kettle預設transformation檔案儲存後字尾名為ktr;
2)建立一個新的job,點選 儲存到本地路徑,例如儲存到D:/etltest下,儲存檔案名為EtltestJob,kettle預設job檔案儲存後字尾名為kjb;
4.2 元件樹介紹
Main Tree菜單列出的是一個transformation中基本的屬性,可以通過各個節點來檢視。
DB連接配接:顯示目前transformation中的資料庫連接配接,每一個transformation的資料庫連接配接都需要單獨配置。
Steps:一個transformation中應用到的環節清單
Hops:一個transformation中應用到的節點連接配接清單
Core Objects菜單列出的是transformation中可以調用的環節清單,可以通過滑鼠拖動的方式對環節進行添加。
Input:輸入環節
Output:輸出環節
Lookup:查詢環節
Transform:轉化環節
Joins:連接配接環節
Scripting:腳本環節
4.3 Transformation轉換介紹
每一個環節可以通過滑鼠拖動來将環節添加到主視窗中。
并可通過shift+滑鼠拖動,實作環節之間的連接配接。
轉換常用環節介紹
<col>
類别
環節名稱
功能說明
Input
文本檔案輸入
從本地文本檔案輸入資料
表輸入
從資料庫表中輸入資料
擷取系統資訊
讀取系統資訊輸入資料
Output
文本檔案輸出
将處理結果輸出到文本檔案
表輸出
将處理結果輸出到資料庫表
插入/更新
根據處理結果對資料庫表機型插入更新,如果資料庫中不存在相關記錄則插入,否則為更新。會根據查詢條件中字段進行判斷
更新
根據處理結果對資料庫進行更新,若需要更新的資料在資料庫表中無記錄,則會報錯停止
删除
根據處理結果對資料庫記錄進行删除,若需要删除的資料在資料庫表中無記錄,則會報錯停止
Lookup
資料庫查詢
根據設定的查詢條件,對目标表進行查詢,傳回需要的結果字段
流查詢
将目标表讀取到記憶體,通過查詢條件對記憶體中資料集進行查詢
調用DB存儲過程
調用資料庫存儲過程
Transform
字段選擇
選擇需要的字段,過濾掉不要的字段,也可做資料庫字段對應
過濾記錄
根據條件對記錄進行分類
排序記錄
将資料根據某以條件,進行排序
空操作
無操作
增加常量
增加需要的常量字段
Scripting
Modified Java Script Value
擴充功能,編寫JavaScript腳本,對資料進行相應處理
Mapping
映射(子轉換)
資料映射
Job
Sat Variables
設定環境變量
Get Variables
擷取環境變量
4.3 Job任務介紹
Main Tree菜單列出的是一個Job中基本的屬性,可以通過各個節點來檢視。
DB連接配接:顯示目前Job中的資料庫連接配接,每一個Job的資料庫連接配接都需要單獨配置。
Job entries:一個Job中引用的環節清單
Job entries菜單列出的是Job中可以調用的環節清單,可以通過滑鼠拖動的方式對環節進行添加。
每一個環節可以通過滑鼠拖動來将環節添加到主視窗中。
并可通過shift+滑鼠拖動,實作環節之間的連接配接。
常用環節介紹
Job entries
START
開始
DUMMY
結束
Transformation
引用Transformation流程
引用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包
大家如果感興趣可以繼續閱讀系列:二、ETL利器Kettle實戰應用解析系列二 【應用場景和實戰DEMO下載下傳】
REFERENCE FROM : http://www.cnblogs.com/limengqiang/archive/2013/01/16/kettleapply1.html