Talend ETL能否强制将组件纳入子作业?执行逻辑调整咨询
解决Talend中子作业依赖的问题
嘿,这事儿我熟!在Talend里完全可以实现你想要的效果——让子作业(4)必须等包含组件(2)(3)的子作业(1)完全成功后再执行,你之前拖拽组件到子作业框里没用是因为Talend的子作业不是这么操作的,我给你两种靠谱的方法:
方法1:重新定义子作业(1)的范围
这是最直观的方式:
- 先按住Ctrl(或Cmd)选中子作业(1)原有的所有组件,再加上组件(2)和(3)
- 右键点击选中的任意组件,选择
Set Subjob(或者点击工具栏上的「设置子作业」按钮) - 这样就会生成一个包含所有选中组件的新子作业框,原来的子作业(1)会被替换成这个新的
- 最后确保子作业(4)的绿色触发连接是连到这个新子作业框的末尾组件,或者直接连到子作业框上
方法2:用触发连接串联执行链
如果不想重新设置子作业框,也可以通过触发连接强制把组件(2)(3)纳入子作业(1)的执行流程:
- 从子作业(1)的最后一个组件,拉一条绿色触发连接到组件(2)
- 再从组件(2)拉绿色触发连接到组件(3)
- 最后从组件(3)拉绿色触发连接到子作业(4)的起始组件
- 这样整个执行顺序就变成:子作业(1)执行完成 → 组件(2) → 组件(3) → 子作业(4),相当于把(2)(3)绑定到了子作业(1)的后续,子作业(4)必须等这三步都完成才会启动
小验证技巧
设置完后可以跑个测试,打开Talend的日志面板,或者在组件(2)(3)和子作业(4)的起始组件里加tLogRow输出标识日志,就能直观确认执行顺序是否符合预期啦。
内容的提问来源于stack exchange,提问作者CleanBold
相关产品推荐
相关产品推荐

