Kettle系列: kettle标准化trans模板
=============================
主控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模板的更多相关文章
- Kettle系列: Kettle并行执行Trans后的合并问题
我们在作业开发中为了处理效率, 经常需要并行执行一些trans, 等它们执行完毕后, 需要执行另外一些trans, 从流程上也就是分支+汇合. 粗看起来很简单, Kettle中对接一下这些组件就搞定了 ...
- kettle系列-kettle管理平台部署说明
本介绍我的开源项目[kettle-manager]kettle管理平台如何获取并部署使用,该项目介绍请参看另一篇博文:http://www.cnblogs.com/majinju/p/5739820. ...
- kettle系列-我的开源kettle调度、管理平台[kettle-manager]介绍
kettle管理工具 专门为kettle这款优秀的ETL工具开发的web端调度.管理工具. 新版本 项目简介 kettle作为非常优秀的开源ETL工具得到了非常广泛的使用,一般的使用的都是使用客户端操 ...
- 开源ETL工具kettle系列之常见问题
开源ETL工具kettle系列之常见问题 摘要:本文主要介绍使用kettle设计一些ETL任务时一些常见问题,这些问题大部分都不在官方FAQ上,你可以在kettle的论坛上找到一些问题的答案 1. J ...
- JS组件系列——基于Bootstrap Ace模板的菜单和Tab页效果分享(你值得拥有)
前言:最近园子里多了许多谈语言.谈环境.谈逼格(格局)的文章,看看笑笑过后,殊不知其实都是然并卵.提升自己的技术才是王道.之前博主分享过多篇bootstrap组件的文章,引起了很多园友的关注和支持,看 ...
- JS组件系列——基于Bootstrap Ace模板的菜单Tab页效果优化
前言:之前发表过一篇 JS组件系列——基于Bootstrap Ace模板的菜单和Tab页效果分享(你值得拥有) ,收到很多园友的反馈,当然也包括很多诟病,因为上篇只是将功能实现了,很多细节都没有处理 ...
- ECMall2.x模板制作入门系列之2(模板标签/语法)
ECMall2.x模板制作入门系列之2(模板标签/语法) 今天给大家带来一个模板语法的教程.希望能为ECMall模板制作者提供一份参考资料.如有问题.建议和意见,欢迎提出. 在ECMall模板中,用& ...
- SpringBoot系列之集成jsp模板引擎
目录 1.模板引擎简介 2.环境准备 4.源码原理简介 SpringBoot系列之集成jsp模板引擎 @ 1.模板引擎简介 引用百度百科的模板引擎解释: 模板引擎(这里特指用于Web开发的模板引擎)是 ...
- kettle系列-4.kettle定制化开发工具类
要说的话这个工具类还是比较简单的,每个方法体都比较小,但用起来还是可以的,把开发中一些常用的步骤封装了下,不用去kettle源码中找相关操作的具体实现了. 算了废话不多了,直接上重点,代码如下: im ...
随机推荐
- 自学Python之路-django
自学Python之路-django 自学Python之路[第一回]:1.11.2 1.3
- shell getopts用法
eg:sh test.sh -u tom -p 123456: getopts的使用形式:getopts OPTION_STRING VAR: OPTION_STRING:-u,-p这种自定义选项: ...
- mac上安装ta-lib
Now I am ready to start installing TA-Lib. Generally I followed the steps listed in here. 1. Install ...
- SES 之全局搜索小记
@2018-12-17 [小记] SES 使用全局搜索时,变量所在的头文件没有被检索出来,选中检索属性中的 Dependencies 就可以了
- 「HAOI2018」染色 解题报告
「HAOI2018」染色 是个套路题.. 考虑容斥 则恰好为\(k\)个颜色恰好为\(c\)次的贡献为 \[ \binom{m}{k}\sum_{i\ge k}(-1)^{i-k}\binom{m-k ...
- LinkedList(JDK1.8)源码分析
双向循环链表 双向循环链表和双向链表的不同在于,第一个节点的pre指向最后一个节点,最后一个节点的next指向第一个节点,也形成一个"环".而LinkedList就是基于双向循环链 ...
- 洛谷P3810 陌上花开 CDQ分治(三维偏序)
好,这是一道三维偏序的模板题 当然没那么简单..... 首先谴责洛谷一下:可怜的陌上花开的题面被无情的消灭了: 这么好听的名字#(滑稽) 那么我们看了题面后就发现:这就是一个三维偏序.只不过ans不加 ...
- WebAPI集成SignalR
WebAPI提供通用数据接口,SignalR提供实时消息传输,两者可以根据实际业务需求进行组合. 环境 版本 操作系统 Windows 10 prefessional 编译器 Visual Studi ...
- IE jQuery ajax 请求缓存问题
我最近在IE下测试开发我们的系统,经常出现改过的jsp页面,刷新IE后也不能显示,这就是IE的缓存问题,查了一下百度,说是IE9在ajax进行请求时,如果两次请求url相同,则不会请求服务器,而是从缓 ...
- 网页性能工具:webpage使用
老大要求优化首页的加载时间,让测试给个详细数据. 轻松用了webpage 参考介绍: http://www.cnblogs.com/strick/p/6681692.html 测试网址: http:/ ...