kettle转换之多线程
kettle转换之多线程
ETL项目中性能方面的考虑一般是最重要的。特别是所讨论的任务频繁运行,或一些列的任务必须在固定的时间内运行。本文重点介绍利用kettle转换的多线程特性。以优化其性能。
如果转换中的每一个步骤已经设置成最快的运行速度而且调节性能至最佳,且再没有很多其它的性能提升空间。可是利用kettle的多线程特性仍然可能提升转换的总体性能。
调整队列大小
当尝试优化性能时。你能够调整输入、输出队列的大小。特别是假设你有足够多的内存(RAM)可用。
在kettle转换中配置队列大小是转换配置中的“Nr of rows in rows”选项的大小,其配置对转换中全部的步骤都有效。
添加可使转换更快运行完活动的步骤,从而释放CPU时间给兴许步骤。针对特定转换调节合适大小最佳实践。
watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvbmV3ZWFzdHN1bg==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast" alt="">
设置步骤运行拷贝数
kettle转换在执行时,每一个步骤可被看成一个带着输入、输出行队列的工作线程,每一个线程是并行执行的,当数据化是有效时即处理。
kettle同意针对每一个独立步骤手工定义其线程数。
假设转换有一个瓶颈步骤,该步骤有多个实例同一时候执行能够加快处理速度。能够通过检查每一个步骤的输入、输出队列及行/秒的处理性能找到候选的瓶颈步骤。假设某步骤有满输入队列,空输出队列,并每秒处理行数低。这些因素往往决定了整个转换的性能,从而找到瓶颈步骤。
这些因素的数据在kettle执行“Step Metrics”视图中能够看到。
watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvbmV3ZWFzdHN1bg==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast" alt="">
右击问题步骤,选择“change number ofcopies to start..”并输入合适的线程数,这时当你执行转换时。你将注意到多个执行的实例。每一个实例在视图中有自己的输入、输出队列。
watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvbmV3ZWFzdHN1bg==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast" alt="">
转换的总体性能提升取决于每一个步骤的性能及操作系统和硬件性能。
如:假设cpu性能强,“计算”步骤性能就佳;数据库查询步骤能够通过多线程提升性能;其它步骤如”update“步骤不太可能提升性能,可是和RDBMS有非常多关系。
须要注意的是步骤启用多线程也有它的局限性。
更详细地。假设问题的步骤中或之后。依赖全部数据行的排列顺序时。该转换将不能正确的执行。每一个步骤的多个线程都独立地接收并处理他们的数据行,因此不能保证全部数据行驶按顺序处理。另外须要提醒的是,每一个线程保持自己的独立内部状态,并不能看到其它线程正处理的行。因此,假设某个步骤必须看到全部的行。才干正常工作,那一定不能使用多线程。”Sort rows”, “Unique rows” 和 “Rowdenormalizer”就是最好的样例。这这些步骤使用多线程是没有意义的。由于每一个线程处理行不过全部行的一个子集。
结论
kettle同意转换中的每一个单独定义多个线程运行。同一时候能够也设置输入、输出队列大小。两个特性对提升运行速度很实用。针对单个步骤启动多线程,两点事实须要考虑的是,每一个线程不能看到整个数据行,且每一个线程处理行顺序不确定。
kettle转换之多线程的更多相关文章
- kettle转换提高性能拆分转换步骤_20161201
今天是12月1号,前期用kettle做了月报自动报表的转换和作业,今天运行时候发现一个报表的程序跑起来失败,心里很纳闷,上过月刚跑的没问题,怎么会无缘无故的失败. 通过看kettle运行日志,发现一个 ...
- Java线程Thread的状态解析以及状态转换分析 多线程中篇(七)
线程与操作系统中线程(进程)的概念同根同源,尽管千差万别. 操作系统中有状态以及状态的切换,Java线程中照样也有. State 在Thread类中有内部类 枚举State,用于抽象描述Java线程的 ...
- kettle转换添加hbase-output无法获取hbase表
问题:kettle转换添加hbase-output无法获取hbase表 win本机安装kettle,本机虚拟机三台,root用户安装有jdk.zookeeper.hadoop.hbase kettle ...
- java中调用kettle转换文件
java中调用kettle转换文件 通过命令行也能够调用,然后java中调用命令行代码也能够.这样没有和java代码逻辑无缝集成.本文说明kettle5.1中假设通过其它API和java代码无缝集成: ...
- kettle转换和作业插件开发及调试
这是一篇几年前写下的文档,最近打算根据这篇文档重写一下kettle插件的教程.结果各种理由,一推再推.今天索性将这篇文档发布出来,分享给大家,例子等有空再补上.这是一篇基于kettle3.2基础上完成 ...
- kettle转换JavaScript获取命令行参数
日常开发中由于很多参数是变化的,需要在部署时才能确定.而写在配置文件里又显得很笨重,因而可以运行时实时指定.那么kettle是怎么获取命令行中的参数的呢? kettle可以通过转换里的JavaScri ...
- 使用kettle转换中的JavaScript对密码进行加密和解密
日常开发中,为了确保账号和密码的安全,时常要对密码进行加密和解密.然而kettle是怎么对密码进行加密和解密的呢? 下面的代码需要再转换中的JavaScript中运行. var encrypted_p ...
- kettle菜鸟学习笔记2----第一个kettle转换的建立及执行
相关概念: Kettle数据清洗是采用元数据(Meta-data)驱动,以数据流的方式进行的,数据从数据源(数据库/文件等)在一系列相连的step之间依次向后流动,各个step完成对流经该step的数 ...
- Kettle转换工具Windows版安装
一.简介 Kettle是一款国外开源的ETL工具,纯java编写,可以在Window.Linux.Unix上运行,绿色无需安装,数据抽取高效稳定. Kettle 中文名称叫水壶,该项目的主程序员MAT ...
随机推荐
- box-sizing重置
html { /*-webkit-box-sizing: border-box; -moz-box-sizing: border-box;*/ box-sizing: border-box; } *, ...
- app自动测试-微信(iOS)-web-1
appium 是一个用于app自动测试的工具.目前支持测试iOS, Android, Windows上的app.(github: https://github.com/appium/appium) 其 ...
- 思维导图工具 & 原型设计工具
最近需要画出系统流程架构什么的,就用到了几个思维导图工具 1. XMind -- 思维导图工具 2. MindManager -- 思维导图工具 3. AXURE RP --原型设计工具
- 禁止复制(copy),禁用鼠标右键!
<SCRIPT> //加入页面保护 function rf() {return false; } document.oncontextmenu = rf function keydown( ...
- [LeetCode] Convert Sorted List to Binary Search Tree DFS,深度搜索
Given a singly linked list where elements are sorted in ascending order, convert it to a height bala ...
- JSTL获取Session的ID与获取文件的真实路径与项目名称
今天在测试集群配置的时候想到session共享,因此想要获取sessionID,可以通过下面方法: ${pageContext.session.id} 获取文件的真实路径: <%=request ...
- poj 3623 Best Cow Line, Gold 后缀数组 + 贪心
题目链接 题目描述 对于一个给定的字符串,可以从左右两端取字符,依次排列构成一个新的字符串. 求可能构成的字符串中字典序 最小的一个. 例:ACDBCB -> ABCBCD 思路 参考自 xue ...
- Qualcomm MPM introduction
在 Qualcomm chip 裡有一個 hardware block 名為 MPM. 在 RPM CPU halts 後,MPM 會保持在 on 的狀態用來處理 全系統 sleep process ...
- Ubuntu 14.04 x64配置Android 4.4 kitkat编译环境的方法
Ubuntu 14.04 x64配置Android 4.4 kitkat编译环境的方法跟Ubuntu 12.04 - 13.10 以及jellybean编译环境配置没多大区别, 顺便记录下而已: Ub ...
- smtp发送邮件记得结尾发送"\r\n.\r\n"
前段时间老板安排我修复一个邮件服务器后台C程序的bug,这个功能是邮件强制发送功能,从邮件管理后台将垃圾邮件发送出去. 因为服务器是debian系统,所以我用dbg配合日志大致跟踪后,追踪到了读取邮件 ...