kettle 效率提升

Kettle作为一款ETL工具,肯定无法避免遇到效率问题,当很大的数据源输入的时候,就会遇到效率的问题。对此有几个解决办法:

1)数据库端创建索引。

对需要进行查询的数据库端字段,创建索引,可以在很大程度上提升查询的效率,最多的时候,我不创建索引,一秒钟平均查询4条记录,创建索引之后,一秒钟查询1300条记录。

2)数据库查询和流查询注意使用环境。

因为数据库查询为数据输入端输入一条记录,就对目标表进行一次查询,而流查询则是将目标表读取到内存中,数据输入端输入数据时,对内从进行查询,所以,当输入端为大数据量,而被查询表数据量较小(几百条记录),则可以使用流查询,毕竟将目标表读到内存中,查询的速度会有非常大的提升(内存的读写速度是硬盘的几百倍,再加上数据库自身条件的制约,速度影响会更大)。同理,对于目标表是大数据量,还是建议使用数据库查询,不然的话,一下子几百M的内存被干进去了,还是很恐怖的。

3)谨慎使用JavaScript脚本。

因为javascript本身效率就不高,当你使用js的时候,就要考虑你每一条记录,就要执行一次js所需要的时间了。

4)数据库commit次数

一条记录和一百条记录commit对效率的影响肯定是不一样的。

5)表输入的sql语句的写法。

有些人喜欢在表输入的时候,将所有关联都写进去,要么from N多个表,要么in来in去,这样,就要面对我在2)里面说道的问题,需要注意。

6)注意日志输出。

例如选择数据库更新方式,而且日志级别是debug,那么后台就会拼命的输出日志,会在很大程度上影响速度,此处一定要注意。

7)kettle本身的性能

kettle本身的性能绝对是能够应对大型应用的,一般的基于平均行长150的一条记录,假设源数据库,目标数据库以及kettle都分别在几台机器上(最常见的桌面工作模式,双核,1G内存),速度大概都可以到5000 行每秒左右,如果把硬件提高一些,性能还可以提升 , 但是ETL 过程中难免遇到性能问题,下面一些通用的步骤也许能给你一些帮助.

尽量使用数据库连接池
尽量提高批处理的commit size
尽量使用缓存,缓存尽量大一些(主要是文本文件和数据流)
Kettle 是Java 做的,尽量用大一点的内存参数启动Kettle.
可以使用sql 来做的一些操作尽量用sql。Group , merge , stream lookup ,split field 这些操作都是比较慢的,想办法避免他们.,能用sql 就用sql
插入大量数据的时候尽量把索引删掉
尽量避免使用update , delete 操作,尤其是update , 如果可以把update 变成先delete ,后insert .
能使用truncate table 的时候,就不要使用delete all row 这种类似sql
尽量不要用kettle 的calculate 计算步骤,能用数据库本身的sql 就用sql ,不能用sql 就尽量想办法用procedure , 实在不行才是calculate 步骤.
要知道你的性能瓶颈在哪,可能有时候你使用了不恰当的方式,导致整个操作都变慢,观察kettle log 生成的方式来了解你的ETL操作最慢的地方。
远程数据库用文件+FTP 的方式来传数据 ,文件要压缩。(只要不是局域网都可以认为是远程连接)

kettle效率提升相关推荐

  1. cad画流程图的插件_CAD制图太慢?62款辅助插件汇总,款款精品,效率提升80%

    CAD制图太慢?62款辅助插件汇总,款款精品,效率提升80%! 前段时间单位来了个新同事,年纪轻轻的,CAD玩得却特别溜,别人两小时画出来的图,他半小时就能搞定,太厉害了! 我们虽然不服气,但确实也挺 ...

  2. 电商直播平台如何借助容器与中间件实现研发效率提升100%?

    作者:鹿玄,阿里云解决方案架构师 前言 直播带货是近期发展非常迅猛的一种新的电商模式.构建一个电商直播平台从技术角度上大致可以分为视频直播服务.CDN.前端(H5/ 小程序).大数据.以及各种业务后台 ...

  3. 不用亲手搭建型了!华人博士提出few-shot NAS,效率提升10倍

    [导读]你能找到最优的深度学习模型吗?还是说你会「堆积木」?最近,伍斯特理工学院华人博士在ICML 2021上发表了一篇文章,提出一个新模型few-shot NAS,效率提升10倍,准确率提升20%! ...

  4. MIT新研究:过去80年,算法效率提升到底有多快?

    来源:MIT,新智元 编辑:David [导读]随着摩尔定律走向终结,靠提升计算机硬件性能可能越发难以满足海量计算的需要,未来的解决之道在于提升算法的效率.MIT的这篇新论文总结了过去80年来,算法效 ...

  5. 展望2021年:智能机器人可监督工业机器人干活,效率提升30%

    来源:极客网 会帮我们吸地板.在公共场所担任导引员或是拆除炸弹的机器人呢可能感觉比较有趣,但那些负责组装汽车以及在工厂生产在线帮忙拾取物品的机器人,在整体价值上要高得多,而且也有越来越多的工/商业或消 ...

  6. 旋转矩阵中6保6_40岁阿姨发明新型手推车,可以360度旋转,干活效率提升6倍

    科技,其实很有趣!大家好,欢迎收看本期木易机械 40岁阿姨发明新型手推车,能够360度旋转,干活效率提升6倍 科技的发展是我们有目共睹的,不仅是那些震惊世界的发明,就在我们的日常生活中,也有很多的小发 ...

  7. 云上效率提升指南 | K8S和Serverless还能这么玩

    从之前的容器到当前热门的Kubernetes.Serverless.微服务等,新技术的每一次出现,都是一场关于效率提升的革命,而效率通常包括了开发效率.运维效率和运营效率等.如果说Kubernetes ...

  8. 开发运维效率提升 80%,计算成本下降 50%,分众传媒的 Serverless 实践

    作者:吴松 本文总结于分众传媒研发总监吴松在阿里云云原生实战峰会上的分享,从三个方面讲述了对 Serverless 技术的探索. 分众传媒的业务现状 分众传媒的业务场景很简单,就是广告主买量,然后进行 ...

  9. 效率提升一倍,成本下降 80%,阿里云落地全球最大规模云原生实践

    2020 天猫 双11 狂欢季成交额最终定格在 4982 亿,同比增长 26%.11 日 0 点 26 秒,阿里云扛住了 58.3 万笔/秒的订单创建峰值,但下单体验依然丝般顺滑,背后的云原生技术功不 ...

最新文章

  1. 中科院自动化所余山:对大脑的未知,并不阻碍借鉴大脑,成就智能
  2. VMware 使用 OVF 模版部署虚拟机
  3. Ubuntu系统下载地址(Ubuntu、ISO、Ubuntu下载)
  4. Linux网络设置(第二版) --互联网寻址过程
  5. Swift变量名的一种玩法
  6. 洛谷 P4017 最大食物链计数
  7. 框架学习之Spring 第四节 Spring集成JDBC组件开发
  8. MCU新趋势—Cortex M0/M3/M4 行业应用主题研讨会
  9. MiniTable 可单选/取消单选.
  10. matlab阿卡曼公式,阿克曼函数--一个计算方法
  11. McAfee迈克菲最新杀毒防火墙软件安装McAfeeEndpointSecurity10.6.1 百度云下载
  12. Manchester Reunited 网站设计报告 // 当初的课程论文,纯怀念了=v=
  13. 中国运动草皮设备市场趋势报告、技术动态创新及市场预测
  14. 解决TortoiseSVN不显示状态图标(图文步骤详解)
  15. ZOJ - Triathlon(线性规划+半平面交)
  16. Failed to connect to github.com port 443: Timed out 及 ping github.com请求超时
  17. 为什么使用Flatten layer?
  18. Vue-组件嵌套之——父组件向子组件传值
  19. 我用python分析买房数据
  20. 每个人都是从零开始,分享牛逼的前端工程师的牛逼学习方法

热门文章

  1. Taro 小程序开发大型实战(六):尝鲜微信小程序云(上篇)
  2. Bootstrap日期控件,实现日期控件只选择不准输入效果
  3. PAT (Basic Level) Practise (中文)1022. D进制的A+B (20)
  4. 《利用python进行数据分析》读书笔记--第十一章 金融和经济数据应用(一)
  5. UE4制作多语言游戏(本地化功能详解)
  6. 师傅!华为eNSP报错啦!别担心,一篇文章教会你
  7. el-form内el-select与el-input纵向不对齐的问题
  8. NLP:MRC常用数据集
  9. MySQL的普通索引和唯一索引到底什么区别?
  10. ucharts 柱状图圆角_圆角柱状图