kettle的调度机制-“走迷宫”

需求

image.png

以上是一个简单的3层数仓运行调度,我们希望ods表有任何一张表etl错误,不再进行后续的edw和rst层的作业。
ods层的原始实现:


image.png

错误发邮件,正确到成功。
实际运行时,不论转换有无错误,都会继续edw和rst层作业。

原理

经查,kettle的调度机制是回溯算法,类似“迷宫算法”。
随机选择一条路径,执行到底,然后返回到上一个分岔点,同理继续。
最终整个job的成功与否取决于最后一步作业项
这样,最后执行的转换可能是1...n中的任一个,并不能保证有转换错误整个作业是失败状态。

实现

根据回溯原理,要实现只要有任何一步错误都导致整个job的失败,只需将任何错误都引向一个错误节点,如图所示:

image.png

悲催的是kettle只有【成功】节点,没有【失败】节点,需要人造一个失败节点。
经多种测试,最后发现最简单的实现就是使用js验证,直接返回false,完整如下:
image.png

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容