kettle配置及性能调优

  性能调优在整个工程中是非常重要的,也是非常有必要的。其实性能调优主要分两个方面:一方面是硬件调优,一方面是软件调优。本章主要是介绍Kettle的性能优化及效率提升。

一、在目标数据库连接选项中,增加下列参数

useServerPrepStmts=false
rewriteBatchedStatements=true
useCompression=true

kettle配置及性能调优_第1张图片

1、useServerPrepStmts=false

     关闭服务器端编译,sql语句在客户端编译好再发送给服务器端。如果为true,sql会采用占位符方式发送。

2、rewriteBatchedStatements=true

      常用于数据库连接为mysql。要批量执行的话,JDBC连接URL字符串中需要新增一个参数:rewriteBatchedStatements=true,并保证5.1.13以上版本的驱动,才能实现高性能的批量插入。默认情况下会无视executeBatch()语句,把批量执行的一组sql语句拆散,一条一条地发给MySQL数据库,批量插入实际上是单条插入,直接造成较低的性能。只有把rewriteBatchedStatements参数置为true, 驱动才会帮你批量执行SQL。另外这个选项对INSERT/UPDATE/DELETE都有效。

3、useCompression=true

       压缩数据传输,优化客户端和MySQL服务器之间的通信性能。

二、适当的提高数据集的大小

kettle配置及性能调优_第2张图片

设置方法:右击转换空白处,选择转换设置,在杂项中进行设置。

三、调整JVM大小进行性能优化,修改Spoon脚本

kettle配置及性能调优_第3张图片

参数参考

 -Xmx1024m:设置JVM最大可用内存为1024M。
 -Xms512m:设置JVM初始内存为512m。此值可以设置与-Xmx相同,以避免每次垃圾回收完成后JVM重新分配内存。

必须注意:-Xmx必须小于等于系统内存的1/4,要不然会报错,-Xms不大于-Xmx。当系统内存为4G时-Xmx不能大于1G,当系统内存为8G时或更大时,java(JDK)版本必须是64位的才能识别出来,此时-Xmx可以为2G或更高。个人建议内存设置不要超付整个服务器内存的2/3。

四、索引的正确使用

在kettle过程中的索引需要遵循以下使用原则:

      1、当插入的数据为数据表中的记录数量10%以上时,首先需要删除该表的索引来提高数据的插入效率,当数据全部插入后再建立索引,通常建议全量采集的时候先删除索引,提高采集效率。

      2、避免在索引列上使用函数或计算,在where子句中,如果索引列是函数的一部分,优化器将不使用索引而使用全表扫描。

      3、避免在索引列上使用 NOT和 “!=”,索引只能告诉什么存在于表中,而不能告诉什么不存在于表中,当数据库遇到NOT和 “!=”时,就会停止使用索引转而执行全表扫描。

     4、索引列上用 >=替代 >

      高效:select * from temp where deptno>=5

      低效:select * from temp where deptno>4

      两者的区别在于,前者DBMS将直接跳到第一个deptno等于5的记录而后者将首先定位到DEPTNO=4的记录并且向前扫描到第一个deptno大于4的记录。

参考网站:https://mp.weixin.qq.com/s/FauKIIdSqImyot2PRvehaw

你可能感兴趣的:(Kettle数据采集,性能调优,java,etl,性能优化)