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 ...
随机推荐
- POJ 1753 Flip Game(高斯消元+状压枚举)
Flip Game Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 45691 Accepted: 19590 Descr ...
- input[type="radio"]自定义样式
input为radio时,虽然会有默认选中的样式,但是并不符合大多数项目的需求,我们的目标是可以随心所欲自定义它的样式.怎么做呢?其实很简单,只要抓住3点.分别是1.label 2.隐藏自带样式 3. ...
- Gerrit使用简介
Gerrit,一种免费.开放源代码的代码审查软件,使用网页界面. Gerrit,一种免费.开放源代码的代码审查软件,使用网页界面.利用网页浏览器,同一个团队的软件程序员,可以相互审阅彼此修改后的程序代 ...
- node系列
http://www.cnblogs.com/zhongweiv/p/nodejs.html
- 【SQL Server】修改DB逻辑文件名称
步骤一:查询当前DB逻辑文件名称(主逻辑文件.日志逻辑文件) ; 步骤二:步骤二改变(还原)DB逻辑文件名称 RESTORE DATABASE AW831 FROM DISK='D:\AW831.DA ...
- 【Visual Studio】Visual Studio 2010 "LNK1123: 转换到 COFF 期间失败: 文件无效或损坏" 的解决方法
1.将 项目|项目属性|配置属性|连接器|清单文件|嵌入清单 “是”改为“否”. 2.找到 C:\Windows\winsxs\x86_netfx-cvtres_for_vc_and_vb_b03f5 ...
- 案子前申請 EVB board (Evaluation Board)
在跑案子前, 需向各 component vendor 申請 EVB board, 其中也包含 mosfet , 以利做實驗, spec 有可能會寫錯 或不清楚, 所以需要使用 EVB board 檢 ...
- hdu 5059(模拟)
Help him Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Su ...
- 【转】awk的使用及字符串的操作
awk教程 转载[awk的使用及字符串的操作] sed版: sed '1~2d' file #删除奇数行 sed '1~2!d' file #删除偶数行 awk版: awk 'NR%2==0' fil ...
- react-transition-group v2 用法概述
官方文档地址:https://reactcommunity.org/react-transition-group/ 在react-transition-group v2中,暴露了三个组件: Trans ...