性能调优在整个工程中是非常重要的,也是非常有必要的。但有的时候我们往往都不知道如何对性能进行调优。本章主要是介绍Kettle的性能优化及效率提升。
我自己建立了一个模拟数据抽取/插入的过程,数据量在30W左右,初始速度如下图所示,每秒平均50条左右,大概需要100分钟的时间
这还仅仅是个30W的测试环境,对于在生产环境中上百万/上千万的数据,可想而之会慢成什么样,于是根据网上提供的各种方式对kettle做了优化,时间缩短到23秒。
实现了速度提升主要从以下几点进行配置
一、在目标数据库连接选项中,增加下列参数
useServerPrepStmts=falseuseCompression=true
1、rewriteBatchedStatements=true含义: mysql jdbc驱动的源代码提示,如果不加rewriteBatchedStatements这个参数的时候,即使java代码写的是用batch执行的,实际上它将数据放到一个ArrayList中,然后在executeBatch的时候再从这个list中取出来一条一条的发送,等于是没有batch的作用。2、useServerPrepStmts=false 关闭服务器端编译