首页 > 其他分享 >Kettle调优教程(推荐收藏)

Kettle调优教程(推荐收藏)

时间:2024-06-04 22:11:59浏览次数:22  
标签:教程 kettle JVM 步骤 Kettle 调优 线程 设置 大小

1、调整JVM大小

linux文件路径:data-integration/spoon.sh

 windows路径:

 

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

-Xmx2048m:设置JVM最大可用内存为2048M。

-Xmn2g:设置年轻代大小为2G。整个JVM内存大小=年轻代大小 + 年老代大小 + 持久代大小。持久代一般固定大小为64m,所以增大年轻代后,将会减小年老代大小。此值对系统性能影响较大,Sun官方推荐配置为整个堆的3/8。

 -Xss128k:设置每个线程的堆栈大小。JDK5.0以后每个线程堆栈大小为1M,以前每个线程堆栈大小为256K。更具应用的线程所需内存大小进行调整。在相同物理内存下,减小这个值能生成更多的线程。但是操作系统对一个进程内的线程数还是有限制的,不能无限生成,经验值在3000~5000左右。

 垃圾回收器:如使用G1垃圾回收器

export PENTAHO_DI_JAVA_OPTIONS="-Xms512m -Xmx1024m -XX:+UseG1GC -Dfile.encoding=UTF-8"

2、 调整提交(Commit)记录数大小

Kettle默认Commit数量为:1000,可以根据具体场景数据量大小来设置Commitsize:1000~50000

 可以单个步骤进行设置,也可以通过kettle.properties 属性文件进行自定义参数设置。

 批量提交的步骤中可以${batch_commit_size} 进行引用。

3、使用数据库连接池

尽量使用数据库连接池,因为频繁建立&断开连接比较耗费时间。

4、合理设置行集大小

行集在Kettle中的作用包括:传递数据、缓存数据、临时存储数据、分批处理数据等。通过合理使用行集,可以实现数据的有效管理和处理,提高数据处理的效率和质量。

双击画布-》杂项-〉记录集合里的记录数进行设置,也可以在kettle.properties属性文件中添加全局参数KETTLE_TRANS_ROWSET_SIZE进行设置。

 

5、设计kettle流程时尽可能少的使用Kettle步骤,因为kettle步骤之间是有行集缓存的,步骤使用的越多,缓存也就越多,步骤间复制拷贝的次数也就越多。

6、根据业务场景,尽可能采用增量同步,而不是全量同步。全量同步时清空数据时采用truncate方式而不是delete方式。

7、可以使用sql来做的一些操作尽量用sql;Group , merge , stream lookup,split field这些操作都是比较慢的,想办法避免他们,能用sql就用sql。

8、插入大量数据的时候尽量把索引删掉,这个具体要根据业务场景,有的是不能删索引的,会影响业务系统使用。

9、尽量避免使用update , delete操作,尤其是update,如果可以把update变成先delete, 后insert。 

11、合理使用数据库索引。

10、合理设置日志级别

行集日志的性能会严重下降,通常情况下可以设置为基本日志,生产环境推荐设置错误日志。

也可以通过如下方式进行设置:

cd /xxx/data-integration && sh kitchen.sh -rep=local -job=xxx_job -dir=/ -level=Error -carte=http://ip:port/cart -exec

或者

curl -X POST -H "Authorization: Basic YWRtaW46UEBzc3cwcmQyMDIz" -H "Content-Type: application/x-www-form-urlencoded" --data "rep=local&job=xxx_job&level=Basic" http://ip:port/kettle/executeJob/ &

11、设置改变开始复制的数量

此配置可以提高性能,类似于java等语言中的多线程,如下图所示:

 

 填写3,点击确定如下图:

 注意:前置步骤一定要调整数据发送策略(有Round-Robin和复制发送模式两种,自己根据自己业务场景进行选择),如下图

12、可以通过spoon客户端和carte服务器排查kettle哪些步骤存在性能问题,如下图所示

 重点观察每个步骤的input和output以及处理的speed找出性能瓶颈,然后进行调优。

小伙伴们还有哪种调优方式,欢迎留言讨论

 

 

标签:教程,kettle,JVM,步骤,Kettle,调优,线程,设置,大小
From: https://www.cnblogs.com/zjBoy/p/18162516

相关文章

  • 卡方分布和 Zipf 分布模拟及 Seaborn 可视化教程
    卡方分布简介卡方分布是一种连续概率分布,常用于统计学中进行假设检验。它描述了在独立抽样中,每个样本的平方偏差之和的分布。卡方分布的形状由其自由度(df)参数决定,自由度越大,分布越平缓。参数卡方分布用两个参数来定义:df:自由度,表示卡方分布的形状。自由度必须为正整数。s......
  • Archlinux安装教程
    先放张图:  准备工作1、进入Live环境后关闭reflectorsystemctlstopreflector2、使用iwctl联网3、timedatectl修改时区timedatectlset-timezoneAsia/Shanghai4、date验证时间fdisk-l查看硬盘和分区情况cfdisk<硬盘编号>修改分区如:cfdisk/dev/sda5、......
  • 屏幕录制工具分享6款,附上详细电脑录屏教程(2024全新)
    当你即将参加一个重要的在线会议或一堂关键的直播课,但又担心错过关键点或无法及时做笔记时,屏幕录制无疑是最好的方法之一。屏幕录制是一项非常有价值的技能,它能让你出于各种目的捕捉屏幕上的活动。无论你的目的是创建教程、演示软件功能、捕捉游戏画面,还是仅仅分享你的桌面操作......
  • Python教程-快速入门基础必看课程09-文件处理
    该视频主要讲述了Python中文件的读写操作和pandas库中的subt函数来处理CSV文件。在Python中,文件的读写操作需要使用open函数打开文件,并指定路径和模式。读取文件时,可以使用f.read()方法读取内容,并使用f.close()方法关闭文件。写入文件时,可以使用f.write()方法写入内容,并使用......
  • manjora Linux下使用howdy实现人脸识别登录的简明教程
    前言从windows切换到Linux会有很多的不适应,自然会想找一些类似于windows体验的Linux替代品,比如windows上的windowshello就很好用,可以使用指纹或者摄像头实现人脸识别在很多场景下可以避免输入密码。经过一番搜索发现howdy是目前Linux上最流行的人脸识别认证的软件,于是就第一时......
  • EFDC建模方法及在地表水环境评价、水源地划分、排污口论证技术教程
    原文链接:EFDC建模方法及在地表水环境评价、水源地划分、排污口论证技术教程https://mp.weixin.qq.com/s?__biz=MzUzNTczMDMxMg==&mid=2247605969&idx=3&sn=30087fd54f3f7a799423af2af789735a&chksm=fa821f36cdf59620bb55495293987726bfa59dcf0bdbab1212fd7cda48ed1aee24785d9a9......
  • 30天变现5位数,涨粉2w,用AI做治愈系插图,太香了!(附工具教程)
    大家好,我是设计师阿威前段时间和一位朋友聊天,他说现在靠AI赚到钱,基本不可能!我竟然一时不知道说什么好。虽然我并不认同他的说法,但也没有再说什么了。因为人们往往会根据自己已有的认知体系,去判断一件事。而一个人多年形成的认知体系,又怎么可能靠别人的几句话就改变?所......
  • AI绘画最新Stable Diffusion安装包+教程+模型+插件+全套入门资料来了,免费拿!
    大家好,我是设计师阿威这篇文章主要给大家分享一些AI绘画方面的学习资料、AI工具以及模型插件、视频教程等等。如果你是新手入门,就一定不要错过这些资料!获取方式:请查看文章底部1.stablediffusion安装包随着技术的迭代,目前StableDiffusion已经能够生成非常艺术化的......
  • 基于BungeeCord搭建 多服务端 Minecraft 我的世界 Bedwars服务器 教程
    本文基于BungeeCord搭建多服务我的世界起床战争服务器本文章后续会持续更新由于多世界插件EssentialsX-Core与Bedwars1058在部分指令上有冲突,于是建议使用BungeeCord(之后我简称BC)搭建多服务端minecraft服务器,将起床Bedwars服务分离出来,顺便将其他的服务比如登陆大厅等分离出......
  • Conts7 安装Redis教程
    1.添加软件安装源yuminstalleple-release2.安装Redisyuminstallredis-y3.启动redissystemctlstartredis4.允许开机启动systemctlenableredis5.修改redis配置文件vim/ect/redis.conf修改2处文件(虚拟机)6.重启redissystemctlrestartredis7.登陆redis数......