Pentaho Data Integration (Kettle)是Pentaho生態(tài)系統(tǒng)中默認(rèn)的ETL工具。Kettle是一款國(guó)外開(kāi)源的etl工具,純java編寫(xiě),綠色無(wú)需安裝,數(shù)據(jù)抽取高效穩(wěn)定(數(shù)據(jù)遷移工具)。Kettle中有兩種腳本文件,transformation和job,transformation完成針對(duì)數(shù)據(jù)的基礎(chǔ)轉(zhuǎn)換,job則完成整個(gè)工作流的控制。
通過(guò)非常直觀的圖形化編輯器(Spoon),您可以定義以XML格式儲(chǔ)存的流程。在Kettle運(yùn)行過(guò)程中,這些流程會(huì)以不同的方法編譯。用到的工具包括命令行工具(Pan),小型服務(wù)器(Carte),數(shù)據(jù)庫(kù)存儲(chǔ)庫(kù)(repository)(Kitchen)或者直接使用IDE(Spoon)。
一款國(guó)外開(kāi)源的etl工具,純java編寫(xiě),綠色無(wú)需安裝,數(shù)據(jù)抽取高效穩(wěn)定(數(shù)據(jù)遷移工具)。Kettle中有兩種腳本文件,transformation和job,transformation完成針對(duì)數(shù)據(jù)的基礎(chǔ)轉(zhuǎn)換,job則完成整個(gè)工作流的控制。
kettle清理數(shù)據(jù)庫(kù)連接的方法:
1:清理shared.xml中的不用的數(shù)據(jù)庫(kù)連接。(他的保存位置一般在用戶(hù)主目錄下邊的.kettle目錄中)
2:用文本編輯軟件打開(kāi)kjb,ktr文件刪除用戶(hù)到的connection項(xiàng),保存。
Kettle項(xiàng)目介紹:
Kettle是一款國(guó)外開(kāi)源的ETL工具,純java編寫(xiě),可以在Window、Linux、Unix上運(yùn)行,綠色無(wú)需安裝,數(shù)據(jù)抽取高效穩(wěn)定。
Kettle 中文名稱(chēng)叫水壺,該項(xiàng)目的主程序員MATT 希望把各種數(shù)據(jù)放到一個(gè)壺里,然后以一種指定的格式流出。
Kettle 將 ELT 流程編譯為 XML 格式,學(xué)起來(lái)十分簡(jiǎn)單,Pentaho Data Integration (Kettle) 使用 Java (Swing)開(kāi)發(fā)。Kettle 作為編譯器對(duì) XML 格式書(shū)寫(xiě)的流程進(jìn)行編譯。這些功能和組件比起 Talend 在豐富性方面稍遜一些,但是您建立復(fù)雜 ETL 流程需要的一切元素。Kettle 的 JavaScript 引擎(和 Java 引擎)可以深層地控制對(duì)數(shù)據(jù)的處理。
全球數(shù)千家機(jī)構(gòu)依賴(lài)于Pentaho的,作出更快,更好的業(yè)務(wù)決策產(chǎn)生積極影響他們的底線(xiàn)。
運(yùn)行 Spoon.bat 開(kāi)始軟件。
需要JRE支持,JRE(Java Runtime Environment) v6.0 Update 26 安裝版:http://elephantinaurance.com/soft/22134.html
Kettle使用教程:
Kettle自己有三個(gè)主要組件:Spoon,Kitchen,Pan。其中Spoon是一個(gè)圖形化的界面,用于windows的時(shí)候,先設(shè)置環(huán)境變量:pentaho_java_home,例如:C:\Program Files\Java\jdk1.7.0_25,其實(shí)就是你的java安裝目錄,1.6以上即可。windows下雙擊Spoon.bat就可以了,界面如下:
這里我建立了資源庫(kù),其實(shí)可以用文件形式存儲(chǔ),存儲(chǔ)的結(jié)構(gòu)都是xml,但是我還是覺(jué)得建立一個(gè)資源庫(kù)比較好,以后看job等情況也比較簡(jiǎn)單,因?yàn)閿?shù)據(jù)表的可讀性比xml要好得多。建立資源庫(kù)和文件資源庫(kù)只需要把右上角的小加號(hào)點(diǎn)一下,就會(huì)出現(xiàn)如下如的界面:
選擇第一個(gè)就是建立數(shù)據(jù)庫(kù)版的資源庫(kù),之后:
之后:
測(cè)試通過(guò)之后點(diǎn)擊OK就回到最開(kāi)始的界面,這時(shí)候選擇test數(shù)據(jù)庫(kù)連接,然后出入你的工程(我是這么叫的)ID和name,這里要記住,因?yàn)橐院髃itchen調(diào)度的時(shí)候要輸入這個(gè)參數(shù)。
在接下來(lái)彈出的框中都點(diǎn)“是”,然后會(huì)出現(xiàn)這個(gè)界面:
這步會(huì)在你的用戶(hù)下建立很多表,所以最好單獨(dú)給資源庫(kù)建立一個(gè)用戶(hù),當(dāng)然這是在oracle下,mysql下和DB2下最好也采用同樣的方式,把資源庫(kù)和其他庫(kù)分開(kāi)。檢查一下:
SQL> conn wings/wings@prism
已連接。
SQL> select count(1) from r_repository_log;
COUNT(1)
----------
0
SQL>
表已經(jīng)建好了;氐阶铋_(kāi)始的界面,選擇test,點(diǎn)擊確定,然后就會(huì)出現(xiàn)登錄對(duì)話(huà)框,用戶(hù)密碼默認(rèn)都是admin,以后可以自己改。
接下來(lái)就可以開(kāi)始用這個(gè)工具了。
其實(shí)對(duì)于簡(jiǎn)單的數(shù)據(jù)庫(kù)數(shù)據(jù)的抽取,基本只需要轉(zhuǎn)換和作業(yè)這兩種東西。下面就是建立一個(gè)轉(zhuǎn)換的步驟:
1 點(diǎn)擊文件-->新建-->轉(zhuǎn)換。
2 在左側(cè)的樹(shù)狀列表中選“主對(duì)象樹(shù)”,新建DB連接。步驟和上面建資源庫(kù)一樣。一個(gè)目標(biāo)庫(kù)一個(gè)源庫(kù)。
3 在核心對(duì)象-->輸入這個(gè)地方拖出一個(gè)表輸入,在“輸出”目錄下拖出“表輸出”,在“轉(zhuǎn)換”處拖出一個(gè)字段選擇來(lái),如圖:
每一個(gè)對(duì)象都可以雙擊修改屬性,下面以抽取world數(shù)據(jù)庫(kù)的city表為例。
雙擊表輸入,選擇數(shù)據(jù)庫(kù)連接,選擇源數(shù)據(jù)庫(kù),然后點(diǎn)擊“獲取SQL查詢(xún)語(yǔ)句”,在彈出的對(duì)話(huà)框里進(jìn)行選擇即可,之后會(huì)變成這樣:
下面點(diǎn)擊表輸出:
點(diǎn)擊字段選擇:
這樣,一個(gè)簡(jiǎn)單的抽取數(shù)據(jù)的轉(zhuǎn)換就完成了。執(zhí)行之,點(diǎn)擊上面的綠色開(kāi)始按鈕。
我也處在學(xué)習(xí)中,希望可以把我的經(jīng)驗(yàn)分享給和我一樣的入門(mén)者。
下面是補(bǔ)充部分:
在一個(gè)Job或者一個(gè)trans建立好之后,就可以建立定時(shí)任務(wù)了。如果是DS,那么DS客戶(hù)端本身就支持schedule,但是Kettle因?yàn)闆](méi)有服務(wù)端和客戶(hù)端的概念,因此只有使用linux的crontab,其實(shí)Job本身也支持定時(shí),但是你必須保證圖形界面一直開(kāi)著,這樣并不如crontab那么好。在命令行里使用kettle很簡(jiǎn)單,Job用kitchen調(diào)度,trans用pan調(diào)度。
下面是一個(gè)kitchen的調(diào)度命令:
bash /home/kettle/data-integration/kitchen.sh /rep kettle_demo /user username /pass passwd /level Minimal /dir /dirname /job jobname
rep那里寫(xiě)自己的資源庫(kù)名稱(chēng)。
trans和上面一樣,略有不同:
bash /home/kettle/data-integration/pan.sh /rep kettle_demo /user username /pass passwd /level Minimal /dir /dirname /trans transname