Kettle 实战之 (8) 阻塞数据直到步骤都完成

我们在job和transformation开发中会有等待某一步完成后,再执行下一步的需求,在job作业中实现这一需求参考下面这篇文章:

kettle(Pentaho)job作业并行都执行完后再执行下一步的操作

 

在转换中,因为转换的所有步骤都是同时启动的,所以用到阻塞这一个组件实现等待的需求。

“阻塞数据直到转换都完成”步骤的使用:

 

 

1、转换步骤名称:步骤的名称,在单一转换中,名称必须唯一。

2、监视下面的步骤:在此表格中指定要等待的步骤,可点击“获取步骤”按钮将转换中的全部步骤自动填充到表格中。

3、步骤名称:选择被监视的步骤名称。可多选,当选择的步骤全部执行完成后,阻塞步骤才通过。

4、复制次数:步骤的副本号,当所选步骤具有多副本时(副本可通过右键点击步骤选择“改变开始复制的数量”进行设置,这个功能实际的含义是:设置多少份的拷贝,开多少线程。副本号从0开始),可设置副本号来指定等待某个特定的副本号执行完毕。如需等待所有副本完成,则需对每个副本设置一行,并使用此列对指定等待哪个副本步骤。

 

转换示例如下:

 

 

第一个线程是产生10行数据,并通过delay row对每行数据delay 1秒。

第二个线程是产生1行数据,阻塞等待线程一的dummy结束后,在执行下一个写日志步骤。

执行结果如下:

可以看到第二个线程是等待了10秒后,也就是第一个线程执行完后才执行的写日志操作。

 

 

 

posted on 2022-06-13 10:46  癫狂编程  阅读(3264)  评论(0编辑  收藏  举报

导航

好的代码像粥一样,都是用时间熬出来的