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转换之多线程的更多相关文章

  1. kettle转换提高性能拆分转换步骤_20161201

    今天是12月1号,前期用kettle做了月报自动报表的转换和作业,今天运行时候发现一个报表的程序跑起来失败,心里很纳闷,上过月刚跑的没问题,怎么会无缘无故的失败. 通过看kettle运行日志,发现一个 ...

  2. Java线程Thread的状态解析以及状态转换分析 多线程中篇(七)

    线程与操作系统中线程(进程)的概念同根同源,尽管千差万别. 操作系统中有状态以及状态的切换,Java线程中照样也有. State 在Thread类中有内部类 枚举State,用于抽象描述Java线程的 ...

  3. kettle转换添加hbase-output无法获取hbase表

    问题:kettle转换添加hbase-output无法获取hbase表 win本机安装kettle,本机虚拟机三台,root用户安装有jdk.zookeeper.hadoop.hbase kettle ...

  4. java中调用kettle转换文件

    java中调用kettle转换文件 通过命令行也能够调用,然后java中调用命令行代码也能够.这样没有和java代码逻辑无缝集成.本文说明kettle5.1中假设通过其它API和java代码无缝集成: ...

  5. kettle转换和作业插件开发及调试

    这是一篇几年前写下的文档,最近打算根据这篇文档重写一下kettle插件的教程.结果各种理由,一推再推.今天索性将这篇文档发布出来,分享给大家,例子等有空再补上.这是一篇基于kettle3.2基础上完成 ...

  6. kettle转换JavaScript获取命令行参数

    日常开发中由于很多参数是变化的,需要在部署时才能确定.而写在配置文件里又显得很笨重,因而可以运行时实时指定.那么kettle是怎么获取命令行中的参数的呢? kettle可以通过转换里的JavaScri ...

  7. 使用kettle转换中的JavaScript对密码进行加密和解密

    日常开发中,为了确保账号和密码的安全,时常要对密码进行加密和解密.然而kettle是怎么对密码进行加密和解密的呢? 下面的代码需要再转换中的JavaScript中运行. var encrypted_p ...

  8. kettle菜鸟学习笔记2----第一个kettle转换的建立及执行

    相关概念: Kettle数据清洗是采用元数据(Meta-data)驱动,以数据流的方式进行的,数据从数据源(数据库/文件等)在一系列相连的step之间依次向后流动,各个step完成对流经该step的数 ...

  9. Kettle转换工具Windows版安装

    一.简介 Kettle是一款国外开源的ETL工具,纯java编写,可以在Window.Linux.Unix上运行,绿色无需安装,数据抽取高效稳定. Kettle 中文名称叫水壶,该项目的主程序员MAT ...

随机推荐

  1. NBUT 1618 投放炸弹(树状数组)

    [1618] 投放炸弹 时间限制: 1000 ms 内存限制: 65535 K 问题描述 我们定义一个炸弹能炸毁的地方要求曼哈顿距离小于等于某个值. 曼哈顿距离——两点在南北方向上的距离加上在东西方向 ...

  2. RTSP会话基本流程

    RTSP会话基本流程 RTSP交互流程: C表示RTSP客户端,S表示RTSP服务端 ① C->S: OPTION request //询问S有哪些方法可用 S->C: OPTION re ...

  3. Java-01背包问题-动态规划-递归和非递归实现

    国际惯例,先上代码,粗略分析: package com.bag; /** * Author: lihao * Date:2017/8/31 * Description: */ public class ...

  4. 模仿原生淘宝app点击搜索时的页面滑动效果

    <!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content ...

  5. 键盘事件keydown、keypress、keyup

    事件触发顺序:keydown - > keypress - > keyup   中文输入法:   firfox:输入触发keydown,回车确认输入触发keyup chrome:输入触发k ...

  6. .NET 下二维码解决方案

    使用Zint和Zxing实现二维码的编码与解码(Using open-source tools to generate and decode Q-R code) 1.Zint生成二维码 http:// ...

  7. 索尼(SONY) SVE1512S7C 把WIN8降成WIN7图文教程

    这两天接常接到客户要求把SONY笔记本的WIN8系统降成WIN7系统的单子,也接到很多毕业学员遇到最新的SONY笔记本不知道怎么进BIOS,进到BIOS不知道怎么设置从U盘启动,从U盘启动了安装了WI ...

  8. iOS YYYY 和 yyyy的区别

    2017年1月31日 转换后变成 2018年1月31日,相差一年.这是为什么呢? 原因:YYYY 是以周为单位计算的,我们平常计算日期时最好用yyyy,yyyy才是标注的年份 如果一月1日是星期一,星 ...

  9. Codeforces 912D Fishes (概率&期望,优先队列的应用)

    题目链接 Fishes 题意  在一个$n*m$的矩阵中,随机选择一个$r * r$的区域覆盖. 一开始我们可以在这个$n*m$的矩阵中选择$k$个点标记为$1$. 我们要选择一个最佳的标记策略,使得 ...

  10. 体育成绩统计——20180801模拟赛T3

    体育成绩统计 / Score 题目描述 正所谓“无体育,不清华”.为了更好地督促同学们进行体育锻炼,更加科学地对同学们进行评价,五道口体校的老师们在体育成绩的考核上可谓是煞费苦心.然而每到学期期末时, ...