重点: 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
-