Kettle學習筆記(四)— 總結


目錄

Kettle學習筆記(一)— 環境部署及運行
Kettle學習筆記(二)— 基本操作
kettle學習筆記(三)— 定時任務的腳本執行
Kettle學習筆記(四)— 總結

Kettle中設置編碼格式

如果處理的數據中有中文,需要對中文設置編碼格式,一般是utf8格式,徹底的修改格式的方法就是,修改spoon.bat文件中增加如下信息:"-Dfile.encoding=UTF-8";

Kettle中調整運行性能

修改參數

Kettle默認的性能適用於普通的一般硬件,如果自己的電腦硬件比較好(內存比較大),可以對kettle的spoon.bat中的參數進行修改,這樣可以適當的提高kettle的運行性能,主要是修改-Xms、-Xmx、-XX:MaxPermSize三個參數的值:

-Xms:設置JVM初始內存 ;
-Xmx:設置JVM最大可用內存 ;
-XX:MaxPermSize:設置JVM最大允許分配內存,按需分配;

非常注意:

-Xmx必須小於等於系統內存的1/4,要不然會報錯,其他兩個選項不大於-Xmx ;
當系統內存為4G時-Xmx不能大於1G,當系統內存為8G或更大時,java版本必須是64位的才能識別出來,此時-Xmx可以為2G或更高

2.創建數據庫連接的參數中必須加上以下三個參數:(用於增加數據寫入速度

useServerPrepStmts=false

rewriteBatchedStatements=true

useCompression=true

提高每次表輸出的提交量。

異常匯總

1.連接不上數據庫,報java.lang.NullPointerException異常:

原因:kettle中放置的連接數據庫的驅動jar包版本低於要連接的數據庫版本;

解決方法:首先查看自己要連接的數據庫版本,然后選擇驅動jar包版本要對應或者高於但要最接近於數據庫版本的jar包即可解決;

2.正常運行一會突然報錯:Communications link failure

錯誤一:

java.net.SocketException: Connection reset by peer: socket write error

錯誤二:

com.mysql.jdbc.exceptions.MySQLNonTransientConnectionException: Communications link failure during commit(). Transaction resolution unknown.

產生上述兩個錯誤的原因:可能是kettle默認使用的是服務端提供的statement,因為一些原因服務端可能會關閉statement,因此要對連接的數據庫設置一些參數,使用kettle自身提供的statement就可以

(1)解決問題:設置參數如下:

useServerPrepStmts=false

rewriteBatchedStatements=true

useCompression=true

(2)如果使用連接池,並將連接池總的maxIDle數值設的比較大:


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM