1. 程式人生 > >ETL利器Kettle實戰應用解析系列一【Kettle使用介紹】

ETL利器Kettle實戰應用解析系列一【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壓縮包,因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包