ETL利器Kettle實戰應用解析系列一【Kettle使用介紹】

本文主要閱讀目錄如下:

1、Kettle概念

2、下載和部署

3、Kettle環境配置

4、Kettle使用及組件介紹

 

ETL(Extract-Transform-Load的縮寫,即數據抽取、轉換、裝載的過程),對於企業或行業應用來說,我們經常會遇到各種數據的處理,轉換,遷移,所以瞭解並掌握一種etl工具的使用,必不可少,這裏我介紹一個我在工作中使用了3年左右的ETL工具Kettle,本着好東西不獨享的想法,跟大家分享碰撞交流一下!在使用中我感覺這個工具真的很強大,支持圖形化的GUI設計界面,然後可以以工作流的形式流轉,在做一些簡單或複雜的數據抽取、質量檢測、數據清洗、數據轉換、數據過濾等方面有着比較穩定的表現,其中最主要的我們通過熟練的應用它,減少了非常多的研發工作量,提高了我們的工作效率,不過對於我這個.net研發者來說唯一的遺憾就是這個工具是Java編寫的。

1、Kettle概念

Kettle是一款國外開源的ETL工具,純java編寫,可以在Window、Linux、Unix上運行,綠色無需安裝,數據抽取高效穩定。

Kettle 中文名稱叫水壺,該項目的主程序員MATT 希望把各種數據放到一個壺裏,然後以一種指定的格式流出。

Kettle這個ETL工具集,它允許你管理來自不同數據庫的數據,通過提供一個圖形化的用戶環境來描述你想做什麼,而不是你想怎麼做。

Kettle中有兩種腳本文件,transformation和job,transformation完成針對數據的基礎轉換,job則完成整個工作流的控制。

2、下載和部署

ž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、Kettle使用及組件介紹
ž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+鼠標拖動,實現環節之間的連接。
ž轉換常用環節介紹

類別

環節名稱

功能說明

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

引用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包

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章