ETL工具kettle的性能优化

性能调优在整个项目中尤为重要。对于初级开发人员往往都不知道如何对性能进行调优。其实性能调优主要分为两个方面:一方面是硬件方面的调优,一方面是软件方面的调优。本文章主要介绍Kettle方面的性能调优以及效率的提升。

一、Kettle组件调优

1. commit size

表输出的提交记录数量(默认1000),具体根据数量大小来修改。

在这里插入图片描述

修改前速度(7447/s):在这里插入图片描述
修改后(7992/s):在这里插入图片描述

2. 数据库连接调参

基于上层优化方案继续调优

useServerPrepStmts=false
rewriteBatchedStatements=true
useCompression=true

在这里插入图片描述
添加参数后(20361/s):
在这里插入图片描述

3. Kettle并行

右击 “START组件” 勾选Run Next Entries in Parallel
在这里插入图片描述
选择I understand

在这里插入图片描述
最终图:
在这里插入图片描述
结果图(可以看到每秒的表输出量已经起飞~~~):
70W的数据仅用30S的时间就插入完成。
在这里插入图片描述

二、Kettle参数调优

  1. 调整JVM大小进行性能优化,修改Kettle定时任务中的Spoon脚本。
参数描述
-Xmx1024m设置JVM最大可用内存为1024M。
-Xms512m设置JVM促使内存为512m。此值可以设置与-Xmx相同,以避免每次垃圾回收完成后JVM重新分配内存。
-Xmn2g(JVM)设置年轻代大小为2G。整个JVM内存大小=年轻代大小 + 年老代大小 + 持久代大小。持久代一般固定大小为64m,所以增大年轻代后,将会减小年老代大小。此值对系统性能影响较大,Sun官方推荐配置为整个堆的3/8。
-Xss128(JVM)设置每个线程的堆栈大小。JDK5.0以后每个线程堆栈大小为1M,以前每个线程堆栈大小为256K。更具应用的线程所需内存大小进行调整。在相同物理内存下,减小这个值能生成更多的线程。但是操作系统对一个进程内的线程数还是有限制的,不能无限生成,经验值在3000~5000左右。
Spoon参数位置:if "%PENTAHO_DI_JAVA_OPTIONS%"=="" set PENTAHO_DI_JAVA_OPTIONS="-Xms512m" "-Xmx512m" "-XX:MaxPermSize=128m"

三、 Kettle其他优化

  1. 尽量使用SQL语句、尽可能的不适用组件。
  2. Kettle是基于Java制作的,尽可能的用较大的内存来启动Kettle
  3. 尽可能的使用同一主机来进行ETL操作(本地-本地/服务器-服务器),本地-服务器传输网络波动会有一定的影响
  4. 使用数据库资源库便于对作业、转换的管理与应用。
  5. 尽可能的输入少量的数据集(没用的字段不抽取)
  6. 插入大量数据时把索引删掉,待数据全量插入完成后再进行创建索引。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

像豆芽一样优秀

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值