我们在作业开发中为了处理效率, 经常需要并行执行一些trans, 等它们执行完毕后, 需要执行另外一些trans, 从流程上也就是分支+汇合.

粗看起来很简单, Kettle中对接一下这些组件就搞定了, 效果如下:

这是一个错误的设计, 如果这么简单没有必要写在博客备忘了. 它的执行效果是: 只要有一个分支执行完毕, 就会执行一次汇总分支, 上面的设计有两个分支, 汇总分支就被执行了两次, 显然不是我们预期的.

在上图基础上使用信号文件来改造一下, 设计图如下:

这个设计总体上是没有问题的, 每个分支执行完毕后都生成一个信号文件, 等所有的信号文件都生成好了, 就执行原来的汇总作业. 但在实际试跑中, 发现了汇总作业有可能还会执行多次. 解决方法也很简单, 只有主干分支才能直连汇总作业, 其他分支禁掉hop就好了.

一点小提示:

推荐信号文件存放在临时目录中,同时前缀加上作业名称, 以免多个job有重名信号文件.
比如信号文件名为: %%java.io.tmpdir%%/job_demo_branch1

Kettle系列: Kettle并行执行Trans后的合并问题的更多相关文章

  1. Kettle系列: kettle标准化trans模板

    =============================主控trans + sub trans 模式=============================针对一个具体的处理任务(比如增量加载一个 ...

  2. kettle系列-kettle管理平台部署说明

    本介绍我的开源项目[kettle-manager]kettle管理平台如何获取并部署使用,该项目介绍请参看另一篇博文:http://www.cnblogs.com/majinju/p/5739820. ...

  3. kettle系列-我的开源kettle调度、管理平台[kettle-manager]介绍

    kettle管理工具 专门为kettle这款优秀的ETL工具开发的web端调度.管理工具. 新版本 项目简介 kettle作为非常优秀的开源ETL工具得到了非常广泛的使用,一般的使用的都是使用客户端操 ...

  4. 开源ETL工具kettle系列之常见问题

    开源ETL工具kettle系列之常见问题 摘要:本文主要介绍使用kettle设计一些ETL任务时一些常见问题,这些问题大部分都不在官方FAQ上,你可以在kettle的论坛上找到一些问题的答案 1. J ...

  5. 使用MDI 和 XtraTabbedMdiManager 后 选项卡切换后Ribbon 合并后不选中MDI子窗...

    使用MDI 和 XtraTabbedMdiManager 后 选项卡切换后Ribbon 合并后不选中MDI子我这里是 继承 XtraTabbedMdiManager  所以,是重载的  OnSelec ...

  6. Spring Ioc源码分析系列--Ioc容器BeanFactoryPostProcessor后置处理器分析

    Spring Ioc源码分析系列--Ioc容器BeanFactoryPostProcessor后置处理器分析 前言 上一篇文章Spring Ioc源码分析系列--Ioc源码入口分析已经介绍到Ioc容器 ...

  7. kettle系列-[KettleUtil]kettle插件,类似kettle的自定义java类控件

    该kettle插件功能类似kettle现有的定义java类插件,自定java类插件主要是支持在kettle中直接编写java代码实现自定特殊功能,而本控件主要是将自定义代码转移到jar包,就是说自定义 ...

  8. kettle系列-4.kettle定制化开发工具类

    要说的话这个工具类还是比较简单的,每个方法体都比较小,但用起来还是可以的,把开发中一些常用的步骤封装了下,不用去kettle源码中找相关操作的具体实现了. 算了废话不多了,直接上重点,代码如下: im ...

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

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

随机推荐

  1. 自学Aruba集锦

    自学Aruba集锦 01 自学Aruba之功率单位和相对单位 02 自学Aruba之无线频段---ISM频段及UNII频段 03 自学Aruba之2.4GHz及5GHz无线信道 04 自学Aruba之 ...

  2. HGOI 20190407 Typing Competition Round #1 出题记

    /* ljc20020730出的HGOI20190407的模拟赛. 考试结果比预期难的不少,可能是由于本来计划5h的比赛打了4h吧. 就当普及组模拟赛好了... 难度大概4紫吧(弱省省选难度) 出境 ...

  3. 【转】从Vue.js源码看异步更新DOM策略及nextTick

    在使用vue.js的时候,有时候因为一些特定的业务场景,不得不去操作DOM,比如这样: <template> <div> <div ref="test" ...

  4. [HEOI2016/TJOI2016]游戏 解题报告

    [HEOI2016/TJOI2016]游戏 看起来就是个二分图匹配啊 最大化匹配是在最大化边数,那么一条边就代表选中一个坐标内的点 但是每一行不一定只会有一个匹配 于是把点拆开,按照'#'划分一下就好 ...

  5. ubuntu下查看磁盘读写情况

    iostat -d -k 1 10 每秒刷新一次,共10次. 未完待续..

  6. Ocean的游戏(前缀和)

    题目链接:http://oj.ismdeep.com/contest/Problem?id=1284&pid=1 B: Ocean的游戏 Time Limit: 1 s      Memory ...

  7. linux ./configure check your system clock

    checking for a BSD-compatible install... /usr/bin/install -cchecking whether build environment is sa ...

  8. 为什么每次app访问服务器都建立新连接 导致服务器大量连接疯涨

    运维发现服务器有大量连接不释放,而且每次app访问都会建立新连接. netstat -antlp |grep ESTAB|grep 8080|wc -l    (访问服务器8080端口的已建立的连接数 ...

  9. OpenLayers学习笔记(六)— 拖拽叠加层overlayer

    是在官网例子基础上增加的拖拽功能 GitHub:八至 作者:狐狸家的鱼 本文链接:拖拽叠加层overlayer 全部代码 <!DOCTYPE html> <html> < ...

  10. 删除文件夹下面的文件的shell命令

    首先看我的文件所在目录 我想删除位于desktop下面的helloBox中的react-hello-dimple中的package.json文件,我们注意一下时间是4月18号 shell命令如下 $ ...