Kettle优化就这么多
Kettle正常转换速度
|
场景 |
正常 |
不正常 |
|
数据库操作 |
3k-2w条/秒 |
2000条/秒以下 |
|
文件操作 |
2w条/秒以上 |
1w条以下 |
|
http、get、set |
比数据库慢 |
容易产生性能问题的场景
查询类:
数据库查询:数据库查询、数据库连接、插入更新
Web查询 :http/get/set webservice
计算类
格式转换(字节与字符互相转换,日期)、
转换一般用计算器和JavaScript方法。
排序类
排序、合并连接(依赖于排序)、分组(依赖于排序)
调优的关键:Rowset
Rowset是两个步骤之间的缓存(大小可以自己设置)
如何找到性能瓶颈:观察Rowset,运行ktr文件时观察下面的窗口值(100/0表示输入100条记录,输出0条记录。如果输入远大于输出,就说明这个步骤来不及处理,就是瓶颈。)
Rowset值的设置:编辑》设置》杂项》记录集合里的记录数》10000,表示缓存里的最大记录数就是10000
其他观察方法:性能图,和步骤度量效果一样。
如何提高性能
合理增加索引
数据库查询:尽可能多的使用相等=判断来筛选数据;如果是等值查询,表就建hash索引;如果是比较查询,就建B树索引
增加复制数:查询类。多线程,2-8个线程一个步骤。具体自己调整。
加大缓存:排序类,查询类。
集群:查询类、运算类、排序
更换其他的实现方式:JavaScript、Java类
注意日志级别:Rowlevel的性能是Basic级别的1/10
.spoonrc在.kettle目录下
注意死锁问题
数据库表死锁:读写同一个表(表现是ktr在running,卡在那不动)
转换本身死锁:
这里死锁的原因:排序记录要求将所有的记录都读取到之后再排序,缓存设置10000,发完要下游处理完才能再次发送。这样以来排序需要更多数据,而表输入是复制记录到两个下游,一个要更多的数据,一个不要更多的数据。所以,死锁。
解决办法:
Kettle优化就这么多的更多相关文章
- kettle优化
http://blog.csdn.net/cissyring/archive/2008/05/29/2494130.aspx 1. Join 我得到A 数据流(不管是基于文件或数据库),A包含fiel ...
- KETTLE常见问题和优化
1.创建MySQL空资源库报错问题:因为boolean类型的问题,Mysql中的boolean类型实际上保存为TINYINT,需要手动的修改生成资源库的sql脚本,将其中的插入用户ENABLED的值由 ...
- kettle系列-3.kettle读取数据库资源库很慢的优化
环境:windows7,jvm内存设置14G,kettle5.1后来升级到5.4,oracle作为资源库. 问题背景:我们通过web页面管理kettle的job运行,这只是一个管理界面,即使web项目 ...
- kettle大数据量读写mysql性能优化
修改kettleDB连接设置 1. 增加批量写的速度:useServerPrepStmts=false rewriteBatchedStatements=true useCompressio ...
- kettle性能优化
普通开发电脑,如果没有网络查询步骤,kettle正常的速度应该在3000~20000条/秒.如果速度在2000条/秒一下,就可能需要调优. 性能优化的方式包括如下几种: 1.通过改变开始复制的数量(针 ...
- Kettle入门及性能优化FAQ
1.安装 配置Java环境 Java环境配置问题 java_home:D:\Program Files\Java\jdk1.7.0_25(安装jdk路径) classpath:.;%java_home ...
- Kettle中ETL的效率优化
ETL效率优化 开启数据库日志记录及性能监控 如果我们想要优化一个ETL(KTR或者KJB)的性能,我们首先需要知道的就是它的瓶颈在哪里.而这些信息一般只能在ETL运行的步骤度量中看到,并且是不会持久 ...
- 解决kettle在两个mysql之间迁移数据时乱码的问题 和 相关报错 及参数调整, 速度优化
1. 乱码问题 编辑目标数据库的链接: 配置编码参数即可. 2. 报错 No operations allowed after statement closed. 需要调整wait_timeout: ...
- kettle系列-1.kettle源码获取与运行
第一次写博客,心里有点小激动,肯定有很多需要改进的地方,望海涵. kettle算是我相对较为深入研究过的开源软件了,也是我最喜欢的开源软件之一,它可以完成工作中很多体力劳动,在ETL数据抽取方面得到了 ...
随机推荐
- GET和POST两种基本请求方法的区别(转载)
get与post请求的区别: 通常回答: GET在浏览器回退时是无害的,而POST会再次提交请求. GET产生的URL地址可以被Bookmark,而POST不可以. GET请求会被浏览器主动cache ...
- 洛谷P1886 滑动窗口
传送门啦 以最大值为例,既然我们想要保证队列开头为答案,那么我们就要保证每次更新使最大值一直放在队列.那么如果存储的最大值该弹出了怎么办呢?我们只需要记录下每个元素的位置,判断是否在区间内即可. 队头 ...
- pip安装显示 is not a supported wheel on this platform.
之前电脑安装的是python3.4,因为需要安装了python2,在用:LFD 安装whl是,每次都会提示 whl is not a supported wheel on this platform ...
- 镜像文件挂载及本地yum搭建
环境:centos7.2 背景:企业内网不能上网,需安装软件以及软件之间的依赖问题 解决方案:下载和企业内网服务器相同版本的centos7.2镜像文件完整版(不是最小化的iso) 挂载镜像文件 1.上 ...
- (转阮一峰)深入理解OAuth 2.0
OAuth是一个关于授权(authorization)的开放网络标准,在全世界得到广泛应用,目前的版本是2.0版. 本文对OAuth 2.0的设计思路和运行流程,做一个简明通俗的解释,主要参考材料为R ...
- Codeforces 601C Kleofáš and the n-thlon 概率dp
Kleofáš and the n-thlon 我们可以用dp算出比当前这个人得分少的概率, 然后人数乘概率就好啦. dp[ i ][ j ]表示进行了 i 轮 得分为 j 的概率, 因为每个人都是独 ...
- 2018年东北农业大学春季校赛 C-wyh的商机
一天,你们wyh学长和你们zhl学长玩一个游戏,这个游戏规则是这样的 给你n个城市,保证这n个城市之间都只有一条道路可以到达. 有一件物品,在所有城市中都是一样的,但是由于各个城市的经济发展不同,导致 ...
- vim/sed/awk/grep等文件批处理总结
Vim相关操作 1.基础 * 和 # 对对当前光标所在的单词进行搜索 %匹配括号移动,包括 (, {, [ K 查看man手册 ga 查看ascii值 g CTRL-G 统计字数,使用Visual模式 ...
- Docker化高可用redis集群
最近遇到部分系统因为redis服务挂掉,导致部分服务不可用.所以希望搭建一个redis集群镜像,把原先散落各处的redis服务器统一管理起来,并且保障高可用和故障自动迁移. 一:redis集群分类 大 ...
- rabbitmq学习(八) —— 可靠机制上的“可靠”
接着上一篇,既然已经有了手动ack.confirm机制.return机制,还不够吗? 以下博文转自https://www.jianshu.com/p/6579e48d18ae和https://my.o ...