之前讲了这个控件怎么获取步骤,但光知道这个是没办法正确使用这个控件的。
现在表A有一批数据,我想先在表B里删除原有的对应历史数据,再重新注入新的表A的数据。
即先删除后插入
我们知道,kettle的JOB是顺序执行的,转换是并列执行的,所以要想在转换里实现运行的优先级,就需要
“阻塞数据直到步骤都完成”
这个控件。
图1:
阻塞控件内容:
图2:
阻塞控件内容:
图1的阻塞是无效的,图2的阻塞是有效的。
原因(仅个人理解和猜测,不对请指正):
在转换里,SQL的运行是优于所有步骤的。
图1中虽然有阻塞控件,但只阻塞了“删除”,“表输入2”并没有被阻塞,而
转换中的步骤是并行的,不要被这条流程线所迷惑!
表输入1和表输入2是同时运行的,同样的,“删除”和“插入/更新”也并列属于同一个优先级,自然实现不了先删除再插入/更新了。
版权声明:本文为weixin_42158147原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。