1. 程式人生 > >KETTLE安裝配置

KETTLE安裝配置

1.    KETTLE是什麼?
首先普及一點知識:
Kettle是一個開源的ETL(Extract-Transform-Load的縮寫,即資料抽取、轉換、裝載的過程)專案,專案名很有意思,水壺。按專案負責人Matt的說法:把各種資料放到一個壺裡,然後呢,以一種你希望的格式流出。Kettle包括三大塊:
     Spoon——轉換/工作(transform/job)設計工具 (GUI方式)
     Kitchen——工作(job)執行器 (命令列方式)
     Span——轉換(trasform)執行器 (命令列方式)
Kettle是一款國外開源的etl工具,純java編寫,可以在Window、Linux、Unix上執行嗎,綠色無需安裝,資料抽取高效穩定。
Kettle 中文名稱叫水壺,該專案的主程式設計師MATT 希望把各種資料放到一個壺裡,然後以一種指定的格式流出。
Kettle這個ETL工具集,它允許你管理來自不同資料庫的資料,通過提供一個圖形化的使用者環境來描述你想做什麼,而不是你想怎麼做。
Kettle中有兩種指令碼檔案,transformation和job,transformation完成針對資料的基礎轉換,job則完成整個工作流的控制。
2.    為什麼使用KETTLE?
這裡簡單概括一下幾種具體的應用場景,按網路環境劃分主要包括:
表檢視模式:這種情況我們經常遇到,就是在同一網路環境下,我們對各種資料來源的表資料進行抽取、過濾、清洗等,例如歷史資料同步、異構系統資料互動、資料對稱釋出或備份等都歸屬於這個模式;傳統的實現方式一般都要進行研發(一小部分例如兩個相同表結構的表之間的資料同步,如果sqlserver資料庫可以通過釋出/訂閱實現),涉及到一些複雜的一些業務邏輯如果我們研發出來還容易出各種bug;
前置機模式:這是一種典型的資料交換應用場景,資料交換的雙方A和B網路不通,但是A和B都可以和前置機C連線,一般的情況是雙方約定好前置機的資料結構,這個結構跟A和B的資料結構基本上是不一致的,這樣我們就需要把應用上的資料按照資料標準推送到前置機上,這個研發工作量還是比較大的;
檔案模式: 資料互動的雙方A和B是完全的物理隔離,這樣就只能通過以檔案的方式來進行資料互動了,例如XML格式,在應用A中我們開發一個介面用來生成標準格式的XML,然後用優盤或者別的介質在某一時間把XML資料拷貝之後,然後接入到應用B上,應用B上在按照標準介面解析相應的檔案把資料接收過來;
綜上3種模式如果我們都用傳統的模式無疑工作量是巨大的,那麼怎麼做才能更高效更節省時間又不容易出錯呢?答案是我們可以使用Kettle!
3.    使用KETTLE需要了解的知識?
Kettle提供了資源庫方式的方式來整合所有的工作,但是因為資源庫移植不方便,所以我們選擇沒有資源庫;
a)    Kettle的使用
i.    建立一個新的transformation,點選儲存到本地路徑,例如儲存到D:/etltest下,儲存檔名為EtltestTrans,kettle預設transformation檔案儲存後後綴名為ktr;
ii.    建立一個新的job,點選 儲存到本地路徑,例如儲存到D:/etltest下,儲存檔名為EtltestJob,kettle預設job檔案儲存後後綴名為kjb;
b)    元件樹介紹
 


c)    Transformation轉換介紹
i.    每一個環節可以通過滑鼠拖動來將環節新增到主視窗中。並可通過shift+滑鼠拖動,實現環節之間的連線。
 
ii.    轉換常用步驟介紹
 
d)    Job作業介紹
i.    作結
 
ii.    作業常用步驟

4.    下載
a)    下載地址:https://community.hitachivantara.com/docs/DOC-1009855
b)    網址開啟後顯示如下:
 
c)    往下翻找到如圖所示,點選後下載
 
5.    如何配置?
a)    環境變數配置
i.    安裝 JDK
1.    首先到官網上下載對應JDK包,JDK1.5或以上版本就行;
2.    安裝JDK;
3.    配置環境變數(安裝完成後,還要對它進行相關的配置才可以使用,先來設定一些環境變數,對於Java來說,最需要設定的環境變數是系統路徑變數path。)
a)    要開啟環境變數的設定視窗。右擊“我的電腦”,在彈出的快捷選單中選擇“屬性”選項,進入“系統屬性”對話方塊,如圖所示。選擇“高階”標籤,進入“高階”選項卡,再單擊“環境變數”按鈕,進入“環境變數”對話方塊,如圖1.7所示:
 


b)    在“Administrator的使用者變數”列表框中,選擇變數PATH,待其所在行變高亮後,單擊“編輯”按鈕,如圖1.8所示。
c)    在彈出的“編輯系統變數”對話方塊中,將JDK安裝路徑下的bin目錄路徑設定到Path變數中,如圖1.10所示。
 
編輯完後,單擊“確定”按鈕,進行儲存,環境變數Path的設定就正式完成。注意:設定Path變數的路徑,必須是JDK安裝目錄中的bin目錄,有時候在JDK安裝目錄的同一層會有JRE的安裝目錄,因此請謹慎選取相關路徑,避免將路徑設定成JRE目錄下的bin目錄。
b)     測試JDK配置是否成功
設定好環境變數後,就可以對剛設定好的變數進行測試,並檢測Java是否可以執行。
i.    Win鍵+R開啟執行對話方塊,輸入cmd命令。
ii.    點選確定開啟命令列視窗。
iii.    在游標處輸入:javac命令,按下Enter鍵執行,即可看到測試結果如圖所示:
 

c)    解壓pdi-ce-7.1.0.0-12.zip,將mysql-connector-java-5.1.21-bin.jar驅動手動放入data-integration/lib資料夾。
6.    如何使用
a)    KETTLE 的幾個子程式的功能和啟動方式
i.    Spoon.bat 圖形介面方式啟動作業和轉換設計器。
ii.    Pan.bat命令方式執行轉換。
iii.    Kitchen.bat命令方式執行作業。
b)    轉換和作業
Kettle的Spoon設計器用來設計轉換(Transformation)和作業(Job)。
i.    轉換主要是對資料的各種處理,一個轉換可以包含多個步驟(Step)。
ii.    作業是比轉換更高一級的處理流程,一個作業裡包含多個作業項(Job Entry),一個作業項代表一項工作,轉換也是一個作業項。
c)    輸入步驟簡介
輸入類步驟用來從外部獲取資料,可以獲取資料的資料來源包括,文字檔案(txt,csv,xml,json)資料庫、 Excel 檔案等桌面檔案,自定義的資料等。對特殊資料來源和應用需求可以自定義輸入外掛。 例子:生成隨機數步驟。
d)    轉換步驟簡介
轉換類步驟是對資料進行各種形式轉換所用到的步驟。例如:欄位選擇、計算器、增加常量。
e)    流程步驟簡介
流程步驟是用來控制資料流的步驟。一般不對資料進行操作,只是控制資料流。 例如:過濾步驟。
f)    連線步驟簡介
連線步驟用來將不同資料集連線到一起。 例如:笛卡爾乘積。
g)    輸出步驟簡介
輸出步驟是輸出資料的步驟,常見的輸出包括文字檔案輸出、表輸出等,可以根據應用的需求開發外掛以其他形式輸出。例如:表輸出。
h)    在kettle裡元資料的儲存方式
i.    資源庫 資源庫包括檔案資源庫、資料庫資源庫 Kettle 4.0 以後資源庫型別可以外掛擴充套件 。
ii.    XML 檔案 .ktr 轉換檔案的XML的根節點必須是 transformation .kjb 作業XML的根節點是job。
iii.    資料庫資源庫:
1.    把 Kettle 的元資料序列化到資料庫中,如 R_TRANSFORMATION 表儲存了Kettle 轉換的名稱、描述等屬性。 
2.    在Spoon 裡建立和升級資料庫資源庫。
iv.    檔案資源庫: 
在檔案的基礎上的封裝,實現了 org.pentaho.di.repository.Repository 介面。是Kettle 4.0 以後版本里增加的資源庫型別 
不使用資源庫: 直接儲存為ktr 或 kjb 檔案。
i)    Kettle資源庫-如何選擇資源庫
i.    資料資源庫的缺點:
1.    不能儲存轉換或作業的多個版本。
2.    嚴重依賴於資料庫的鎖機制來防止工作丟失。
3.    沒有考慮到團隊開發,開發人員不能鎖住每個作業自己開發。
ii.    檔案資源庫的缺點:
1.    物件(如轉換、作業、資料庫連線等物件)之間的關聯關係難以處理,所以刪除、重新命名等操作會比較麻煩。
2.    沒有歷史版本。
3.    難以進行團隊開發。
不使用資源庫,使用svn進行檔案版本控制。