=============================
主控trans + sub trans 模式
=============================
针对一个具体的处理任务(比如增量加载一个表), 我认为应该最好是使用两个trans来完成这个任务,分别是主控trans 和sub trans, 其中主控trans负责流程控制(包括依赖检查+增量区间设定+异常报警), sub trans仅负责数据转换, 这样能很好地隔离控制逻辑和数据处理逻辑.

用到的组件有:
在主控trans中, 通过 Transformation executor 组件调用sub trans, 可以在Transformation executor 组件上设置传递的参数, 通常是增量处理的时间区间.
而在数据处理trans中通过Get rows from result 组件对应地也设置参数, 用来获取主控trans传入的参数.

=============================
Transformation executor 的异常捕获
=============================
一般情况下, 如果Transformation executor 执行错误, 在log中能看到错误日志, 但是主控trans却获取不到错误状态. 需要做一些特别设定才能捕获到sub trans的执行异常, 这包括:
1. 在transformation executor 界面的Execution results 页签上, 确保Number of errors设定了输出字段名.
2. 增加一个 Block this step until steps finish 组件来获取sub trans正常结束.
3. 增加一个 filter rows组件来判断 transformation executor 的错误数量输出字段是否大于0.
4. 在filter rows组件后加上 Abort 组件.

这里重点强调, 如何连接 transformation executor 组件和 Block 组件, 以及 transformation executor 组件和 filter组件.
1. 连接 transformation executor 组件和 Block组件
必须使用 this output will contain a copy of the executor steps input data 连线, 在trans的XML文件中, 该连线在对应着 executors_output_step tag.
2. 连接 transformation executor 组件和 filter组件
必须使用 This output will contain the execution results 连线,在trans的XML文件中, 该连线在对应着 execution_result_target_step tag.

<execution_result_target_step>check error filter</execution_result_target_step>
<execution_errors_field>ExecutionNrErrors</execution_errors_field>
<result_rows_target_step/>
<result_files_target_step/>
<executors_output_step>Blocking Step</executors_output_step>

因为 Kettle 7.1 的bug, 上面两个连线必须先连transformation executor 组件到 Block组件, 然后再连transformation executor 组件和 filter组件. 如果次序反了的话, trans的XML文件将会丢失 executors_output_step tag 的取值, 这样即使sub trans异常, 主控trans也捕获不到.

步骤比较繁琐也容易忘记, 贴一个操作步骤示意图.

下面是一个比较完整的组件示意图:

下图的abort组件也要打开abort as error, 这样才能将报错冒泡到最外层.

Kettle系列: kettle标准化trans模板的更多相关文章

  1. Kettle系列: Kettle并行执行Trans后的合并问题

    我们在作业开发中为了处理效率, 经常需要并行执行一些trans, 等它们执行完毕后, 需要执行另外一些trans, 从流程上也就是分支+汇合. 粗看起来很简单, Kettle中对接一下这些组件就搞定了 ...

  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. JS组件系列——基于Bootstrap Ace模板的菜单和Tab页效果分享(你值得拥有)

    前言:最近园子里多了许多谈语言.谈环境.谈逼格(格局)的文章,看看笑笑过后,殊不知其实都是然并卵.提升自己的技术才是王道.之前博主分享过多篇bootstrap组件的文章,引起了很多园友的关注和支持,看 ...

  6. JS组件系列——基于Bootstrap Ace模板的菜单Tab页效果优化

    前言:之前发表过一篇  JS组件系列——基于Bootstrap Ace模板的菜单和Tab页效果分享(你值得拥有) ,收到很多园友的反馈,当然也包括很多诟病,因为上篇只是将功能实现了,很多细节都没有处理 ...

  7. ECMall2.x模板制作入门系列之2(模板标签/语法)

    ECMall2.x模板制作入门系列之2(模板标签/语法) 今天给大家带来一个模板语法的教程.希望能为ECMall模板制作者提供一份参考资料.如有问题.建议和意见,欢迎提出. 在ECMall模板中,用& ...

  8. SpringBoot系列之集成jsp模板引擎

    目录 1.模板引擎简介 2.环境准备 4.源码原理简介 SpringBoot系列之集成jsp模板引擎 @ 1.模板引擎简介 引用百度百科的模板引擎解释: 模板引擎(这里特指用于Web开发的模板引擎)是 ...

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

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

随机推荐

  1. 【NowCoder368E】车站(线段树)

    [NowCoder368E]车站(线段树) 题面 牛客网 题解 链交的结果显然和求解的顺序无关,因此我们可以拿线段树维护区间链的链交结果. 然后怎么求解最远点. 维护链交的时候再记录两个点表示到达链交 ...

  2. OpenLayers学习笔记(五)— 拖拽Feature图层

    参考文档的例子可以知道如何拖动矢量图层feature GitHub: 八至 作者:狐狸家的鱼 本文链接:拖拽Feature图层 全部代码 <!DOCTYPE html> <html& ...

  3. express搭建服务器

    学习express搭建node服务器 一.安装express框架 1.了解框架(百度) 2.下载框架 (1)使用npm命令下载 npm install express -g //全局安装,安装的是ex ...

  4. CF739E Gosha is hunting

    法一: 匹配问题,网络流! 最大费用最大流,S到A,B流a/b费0,A,B到i流1费p[i]/u[i],同时选择再减p[i]*u[i]? 连二次!所以i到T流1费0流1费-p[i]*u[i] 最大流由 ...

  5. CF341E Candies Game

    题目链接 题意 有\(n\)个盒子,第\(i\)个盒子里面有\(a_i\)个糖果.每次选择两个盒子\(i,j\),假设\(a_i \le a_j\).然后从第\(j\)个盒子中拿出\(a_i\)个糖果 ...

  6. C# 中Web.config文件的读取与写入

    asp.net2.0新添加了对web.config直接操作的功能.开发的时候有可能用到在web.config里设置配置文件,其实是可以通过程序来设置这些配置节的. asp.net2.0需要添加引用: ...

  7. PHP冒泡排序算法

    算法说明: 冒泡排序大概的意思是依次比较相邻的两个数,然后根据大小做出排序,直至最后两位数.由于在排序过程中总是小数往前放,大数往后放,相当于气泡往上升,所以称作冒泡排序.但其实在实际过程中也可以根据 ...

  8. Linux编译安装PHP参数说明

    php各参数配置详解 --prefix=/usr/local/php //指定 php 安装目录 --with-apxs2=/usr/local/apache/bin/apxs //整合apache, ...

  9. MySQL表结构的优化和设计

    仅供自己学习   结论写在前面: 1.给字段选取最合适的数据类型 2.数据类型的宽度尽可能的小 3.给where条件的字段设置索引 4.允许部分数据冗余 5.字段要尽可能的设置为not null,特别 ...

  10. R语音:解决cor.test报错的 'y'必需是数值矢量

    'y'必需是数值矢量,产生该类报错可能是含有NA值. 只需要在该数值上加入as.double函数即可.见下命令: ##先测试是不是数值型 is.numeric(data[,2]) #[1] FALSE ...