版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/ClamReason/article/details/49930479

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优化就这么多的更多相关文章

  1. kettle优化

    http://blog.csdn.net/cissyring/archive/2008/05/29/2494130.aspx 1. Join 我得到A 数据流(不管是基于文件或数据库),A包含fiel ...

  2. KETTLE常见问题和优化

    1.创建MySQL空资源库报错问题:因为boolean类型的问题,Mysql中的boolean类型实际上保存为TINYINT,需要手动的修改生成资源库的sql脚本,将其中的插入用户ENABLED的值由 ...

  3. kettle系列-3.kettle读取数据库资源库很慢的优化

    环境:windows7,jvm内存设置14G,kettle5.1后来升级到5.4,oracle作为资源库. 问题背景:我们通过web页面管理kettle的job运行,这只是一个管理界面,即使web项目 ...

  4. kettle大数据量读写mysql性能优化

       修改kettleDB连接设置 1. 增加批量写的速度:useServerPrepStmts=false  rewriteBatchedStatements=true  useCompressio ...

  5. kettle性能优化

    普通开发电脑,如果没有网络查询步骤,kettle正常的速度应该在3000~20000条/秒.如果速度在2000条/秒一下,就可能需要调优. 性能优化的方式包括如下几种: 1.通过改变开始复制的数量(针 ...

  6. Kettle入门及性能优化FAQ

    1.安装 配置Java环境 Java环境配置问题 java_home:D:\Program Files\Java\jdk1.7.0_25(安装jdk路径) classpath:.;%java_home ...

  7. Kettle中ETL的效率优化

    ETL效率优化 开启数据库日志记录及性能监控 如果我们想要优化一个ETL(KTR或者KJB)的性能,我们首先需要知道的就是它的瓶颈在哪里.而这些信息一般只能在ETL运行的步骤度量中看到,并且是不会持久 ...

  8. 解决kettle在两个mysql之间迁移数据时乱码的问题 和 相关报错 及参数调整, 速度优化

    1. 乱码问题 编辑目标数据库的链接: 配置编码参数即可. 2. 报错 No operations allowed after statement closed. 需要调整wait_timeout:  ...

  9. kettle系列-1.kettle源码获取与运行

    第一次写博客,心里有点小激动,肯定有很多需要改进的地方,望海涵. kettle算是我相对较为深入研究过的开源软件了,也是我最喜欢的开源软件之一,它可以完成工作中很多体力劳动,在ETL数据抽取方面得到了 ...

随机推荐

  1. [原创]Sql2008 使用TVP批量插入数据

    TVP(全称 :Table-Valued Parameter) 叫做表值参数(Table-Valued Parameter)是SQL2008的一个新特性.顾名思义,表值参数表示你可以把一个表类型作为参 ...

  2. mac OS配置用户全局环境变量(设置字符集为UTF8)

    mac OS系统跟linux系统一样也是将用户的全局环境变量保存在.bash_profile配置文件中,只是mac OS默认没有此文件. 1.创建.bash_profile文件 vi ~/.bash_ ...

  3. AJAX请求时status返回状态明细表(转)

    转自:http://www.cnblogs.com/wangking/p/6530904.html AJAX请求时status返回状态明细表 readyState的五种状态2010-03-04 18: ...

  4. ssh登录,Host key verification failed的几种处理方法

    - 修订历史History:  2011.05.22   初稿 - 系统: Ubuntu 10.04LTS  - 软件: SSH 使用SSH登录某台机器,有时因为server端的一些变动,会出现以下信 ...

  5. 关于CCR测评器的自定义校验器(Special Judge)

    引言 有时我们需要使用CCR测评器(CCR-Plus是一个开源的信息学竞赛测评软件,Github链接https://github.com/sxyzccr/CCR-Plus)进行SpecialJudge ...

  6. Android Studio一直 Fetching Documentation...

    Android查看私有库android-spport-v4.jar & android-support-v7-appcompat.jar源码 https://www.cnblogs.com/s ...

  7. Redis学习笔记9--Redis持久化

    redis是一个支持持久化的内存数据库,也就是说redis需要经常将内存中的数据同步到磁盘来保证持久化.redis支持四种持久化方式,一是 Snapshotting(快照)也是默认方式:二是Appen ...

  8. ZOJ Monthly, March 2018 题解

    [题目链接] A. ZOJ 4004 - Easy Number Game 首先肯定是选择值最小的 $2*m$ 进行操作,这些数在操作的时候每次取一个最大的和最小的相乘是最优的. #include & ...

  9. catalan数的新理解

    catalan数的新理解h[5]==h[4][0]+h[3][1]+h[2][2]+h[1][3]+h[0][4];对于这种递推式就是catalan数

  10. [Java]jdbc[转]

    >>http://www.cnblogs.com/xiohao/p/3507483.html >>http://www.cnblogs.com/hongten/archive/ ...