kettle7.1的基本使用總結(jié)

概念:

Kettle是一款國外開源的ETL工具,純java編寫,可以在Windows、Linux、Unix上運(yùn)行,數(shù)據(jù)抽取高效穩(wěn)定。

Kettle家族目前包括4個(gè)產(chǎn)品:Spoon、Pan、CHEF、Kitchen。

SPOON?允許你通過圖形界面來設(shè)計(jì)ETL轉(zhuǎn)換過程(Transformation)。

PAN?允許你批量運(yùn)行由Spoon設(shè)計(jì)的ETL轉(zhuǎn)換 (例如使用一個(gè)時(shí)間調(diào)度器)。Pan是一個(gè)后臺執(zhí)行的程序,沒有圖形界面。

CHEF?允許你創(chuàng)建任務(wù)(Job)。 任務(wù)通過允許每個(gè)轉(zhuǎn)換,任務(wù),腳本等等,更有利于自動(dòng)化更新數(shù)據(jù)倉庫的復(fù)雜工作。任務(wù)通過允許每個(gè)轉(zhuǎn)換,任務(wù),腳本等等。任務(wù)將會(huì)被檢查,看看是否正確地運(yùn)行了。

KITCHEN?允許你批量使用由Chef設(shè)計(jì)的任務(wù) (例如使用一個(gè)時(shí)間調(diào)度器)。KITCHEN也是一個(gè)后臺運(yùn)行的程序。

我們主要講解spoon。

一、配置倉庫管理

? ? 點(diǎn)擊右上角配置數(shù)據(jù)存儲位置


點(diǎn)擊Repository Manager…


數(shù)據(jù)庫存儲則是將所創(chuàng)建的文件保存到數(shù)據(jù)庫,這樣可以保證數(shù)據(jù)的安全性。(長時(shí)間的傳輸可能出現(xiàn)數(shù)據(jù)庫連接超時(shí))。

文件存儲則是將文件保存到本地磁盤,兩種可視情況而定。

二、轉(zhuǎn)換的使用

配置BD連接,必須先把數(shù)據(jù)庫連接的jar包放在kettle安裝目錄下的lib包。如:mysql-connector-java-5.1.38.jar

如下:配置了一個(gè)oracle和一個(gè)mysql的數(shù)據(jù)庫

新建一個(gè)轉(zhuǎn)換: 文件 —> 新建 —> 轉(zhuǎn)換

簡單的數(shù)據(jù)轉(zhuǎn)換最常用的就是CSV文件輸入和表輸入兩種了,其他的可以在作業(yè)中用到。

輸出有以上幾種,下面我們示范一個(gè)從數(shù)據(jù)庫讀取數(shù)據(jù),輸出一個(gè)csv文件。

寫完后點(diǎn)擊預(yù)覽查看是否正確

下面看文本文件輸出

點(diǎn)擊執(zhí)行,生成csv文本

三、作業(yè)

比如說我們要同時(shí)同步五張表的數(shù)據(jù)則可以新建一個(gè)作業(yè),多線程去同步五張表的數(shù)據(jù)


四、定時(shí)執(zhí)行任務(wù)

我們將作業(yè)保存在數(shù)據(jù)庫中,windows下一般用任務(wù)調(diào)度來執(zhí)行,linux可以用crotable實(shí)現(xiàn)

新建一個(gè)bat文件

然后將這個(gè)bat文件添加到windows定時(shí)任務(wù)中就可以了

五、java代碼

kettle也支持java代碼及js腳本等

假設(shè)有表person,有字段id,name,code,若code為空,則取name,若不為空加上999,然后更新原表數(shù)據(jù)。


表輸入如下:

Java代碼如下:


更新如下:


執(zhí)行成功后查看數(shù)據(jù)庫數(shù)據(jù):

六、性能優(yōu)化

Oracle:

????defaultRowPrefetch = 20000 (可以根據(jù)內(nèi)存情況定)

????????預(yù)取條數(shù)默認(rèn)值,oracle默認(rèn)為10,可以增加該值來減少數(shù)據(jù)庫請求以提高查詢效率

Mysql:

defaultFetchSize:設(shè)置一次讀取多少條數(shù)據(jù),不設(shè)置讀大表可能會(huì)出現(xiàn)OOM問題

rewriteBatchedStatements:批量插入,可以提高插入數(shù)據(jù)的性能

useServerPrepStmts:如果服務(wù)器支持,是否使用服務(wù)器端預(yù)處理語句? 默認(rèn)值為“真”(如果數(shù)據(jù)類型不一? ? ? ?致,可能會(huì)出現(xiàn)丟失精度問題)

useCursorFetch:使用FetchSize必須啟用

useCompression:與服務(wù)器進(jìn)行通信時(shí)采用zlib壓縮(真/假)? 默認(rèn)值為“假”。

更多參數(shù)配置可以見:mysql配置


提交數(shù)量可以根據(jù)內(nèi)存情況盡量給大,最大5W條。

根據(jù)電腦內(nèi)存修改spoon.bat

???????? PENTAHO_DI_JAVA_OPTIONS="-Xms8192m""-Xmx8192m" "-XX:MaxPermSize=4096m"

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • //[kettle官方首頁]Data Integration | Pentaho Communityhttp://...
    葡萄喃喃囈語閱讀 5,214評論 0 21
  • Kettle 1.Kettle的介紹: Kettle是一款國外開源...
    有你就行閱讀 798評論 0 1
  • 背景 最近因公司項(xiàng)目原因,接觸到了Kettle這樣一款ETL工具。計(jì)劃在這段學(xué)習(xí)與使用的過程中,將自己的心得體會(huì),...
    熊頎閱讀 26,882評論 11 41
  • 關(guān)于Mongodb的全面總結(jié) MongoDB的內(nèi)部構(gòu)造《MongoDB The Definitive Guide》...
    中v中閱讀 32,311評論 2 89
  • 數(shù)據(jù)整合是吧在不同數(shù)據(jù)源的數(shù)據(jù)收集、整理、清洗、轉(zhuǎn)換(有點(diǎn)像ETL)后,加載到一個(gè)新的數(shù)據(jù)源,為數(shù)據(jù)使用者提供統(tǒng)一...
    開心跳蚤閱讀 2,100評論 0 5

友情鏈接更多精彩內(nèi)容