kettle踩坑大集合

一、提高傳輸數(shù)據(jù)同步效率

1.數(shù)據(jù)庫連接增加以下配置

useServerPrepStmts=false
rewriteBatchedStatements=true
useCompression=true
oracle讀取慢添加:
在選項中添加defaultRowPrefetch,值設(shè)置為10000以上,具體是數(shù)據(jù)庫情況而定

圖片.png

2.使用連接池

注意:使用連接池后, 在第一次創(chuàng)建連接池后不會隨著該kettle任務(wù)線程結(jié)束銷毀線程池, 而是與項目的生命周期保持一致, 可以使用jobMeta.clear();方法銷毀連接池;
樓主遇到的坑:同步過程中使用的線程池中的連接失效導(dǎo)致線程無法釋放, 再次重啟還是使用失效的連接, 最終只能重啟項目銷毀線程池

圖片.png

二、0000-00-00 00:00:00值字段同步異常

kettle報錯信息: can not be represented as java.sql.Timestamp
解決方案:

zeroDateTimeBehavior=convertToNull

圖片.png

三、跑大數(shù)據(jù)量,內(nèi)存溢出

1.kettle在同步以job為單位, job不執(zhí)行完 不釋放內(nèi)存.

建議: 大數(shù)據(jù)量時分批跑, 例如按照id/時間進行分片執(zhí)行, 使用連接池并且java在初始化JobMeta時只初始化一次.

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

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