Kettle 的簡單介紹

前文:

             作爲一款主流ELT工具,比同類數據抽取工具DataX、Sqoop更加強大,可以通過圖形化界面直接對接各個數據源,進行任何數據格式的數據轉換及處理。

一、核心:作業及轉換

轉換(步驟流):數據輸入——處理邏輯——輸出

專業(工作流):Start——轉換1——轉換2——成功/失敗——郵件

二、簡單轉換流程

1、配置連接

2、添加組件並進行啓動執行

3、查看作業相關參數性能

二、作業操作

說明:Start——多個轉換模塊——寫日誌、發郵件等等。。

通過Start可以設置定時執行

三、大數據平臺相關配置

1、不同平臺環境

選擇如:hdp30文件夾存放

 

2、配置文件  pdi-ce-9.0.0.0-423\data-integration\plugins\pentaho-big-data-plugin\plugin.properties

四、調優

1、調整JVM大小進行性能優化,修改Kettle根目錄下的Spoon腳本。

 

參數參考:

-Xmx2048m:設置JVM最大可用內存爲2048M。

-Xms1024m:設置JVM促使內存爲1024m。此值可以設置與-Xmx相同,以避免每次垃圾回收完成後JVM重新分配內存。

-Xmn2g:設置年輕代大小爲2G。整個JVM內存大小=年輕代大小 + 年老代大小 + 持久代大小。持久代一般固定大小爲64m,所以增大年輕代後,將會減小年老代大小。此值對系統性能影響較大,Sun官方推薦配置爲整個堆的3/8。

-Xss128k:設置每個線程的堆棧大小。JDK5.0以後每個線程堆棧大小爲1M,以前每個線程堆棧大小爲256K。更具應用的線程所需內存大小進行調整。在相同物理內存下,減小這個值能生成更多的線程。但是操作系統對一個進程內的線程數還是有限制的,不能無限生成,經驗值在3000~5000左右。

2、 調整提交(Commit)記錄數大小進行優化,Kettle默認Commit數量爲:1000,可以根據數據量大小來設置Commitsize:1000~50000

3、儘量使用數據庫連接池;

4、儘量提高批處理的commit size;

5、儘量使用緩存,緩存儘量大一些(主要是文本文件和數據流);

6、Kettle是Java做的,儘量用大一點的內存參數啓動Kettle;

7、可以使用sql來做的一些操作儘量用sql;

Group , merge , stream lookup,split field這些操作都是比較慢的,想辦法避免他們.,能用sql就用sql;

8、插入大量數據的時候儘量把索引刪掉;

9、儘量避免使用update , delete操作,尤其是update,如果可以把update變成先delete,  後insert;

10、能使用truncate table的時候,就不要使用deleteall row這種類似sql合理的分區,如果刪除操作是基於某一個分區的,就不要使用delete row這種方式(不管是deletesql還是delete步驟),直接把分區drop掉,再重新創建;

11、儘量縮小輸入的數據集的大小(增量更新也是爲了這個目的);

12、儘量使用數據庫原生的方式裝載文本文件(Oracle的sqlloader, mysql的bulk loader步驟)。

 

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