重點: ETL 優化多數在於表輸入和表輸出。
轉自: https://blog.csdn.net/qq_37124304 https://blog.csdn.net/qq_37124304/article/details/82664665
由於Kettle提高表輸出寫入速度太低,每秒速度三四十,實在忍受不了,參考一些資料之后進行了以下改變,我只進行了第一項的速度每秒五六千,加上其他的測試速度有達到3萬多,有一分鍾二十多萬的記錄,沒測試極限,下為更改的地方:
NO.1
mysql表輸出的時候出現減速的原因可能是因為網絡鏈接的屬性設置
在此處添加參數:
useServerPrepStmts=false
rewriteBatchedStatements=true
useCompression=true
如圖:
NO.2
kettle 允許線程多開
NO.3
也可以適當的提高數據集的大小
此處未改,不同的MySQL數據庫版本好似有數據傳輸限制會報Prepared statement contains too many placeholders,我用的是5.7的沒有出現這個錯誤
NO.4
每次表輸出的提交量
更改大小視機器的內存大小改變,
最后的
kettle還可以並發處理job
-