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

如图:

Kettle提高表输出写入速度(每秒万条记录)-LMLPHP

NO.2

kettle 允许线程多开

Kettle提高表输出写入速度(每秒万条记录)-LMLPHP

NO.3

也可以适当的提高数据集的大小

Kettle提高表输出写入速度(每秒万条记录)-LMLPHP

此处未改,不同的MySQL数据库版本好似有数据传输限制会报Prepared statement contains too many placeholders,我用的是5.7的没有出现这个错误

NO.4

每次表输出的提交量

Kettle提高表输出写入速度(每秒万条记录)-LMLPHP

更改大小视机器的内存大小改变,

最后的

kettle还可以并发处理job

Kettle提高表输出写入速度(每秒万条记录)-LMLPHP

-

05-13 12:33