[我是一位经验丰富的DataStage开发人员,正在转向Talend。试图联系概念。]
我在DataStage中有以下工作,我将其归类为" sync" job的目的是同步不同服务器上两个表中的内容。它实际上是一个两遍作业,但使用相同的两个哈希表,而不需要在两次传递中读取两个源表。读取表一次,填充哈希表,然后哈希表用作每个传递的提要和查找
我试图在Talend ESB中构建一个类似的工作,并且大部分都在工作,但无法弄清楚如何将哈希表绑定在一起。我理解需要在tHashInput属性中选择关联的组件。
我知道我可以使用" On Component OK"触发上部作业中的两个哈希表,并将它们绑定到下部作业的起始哈希表。但是当我跑步时,第二份工作失败了,因为APPLCODE_SRC工作尚未初始化 - 我不明白,因为它应该在第二份工作开始之前完成 - 除非我不明白什么" On Component OK"真的意思是。
我也尝试在tRunJob中使用上层组件。在这里,我可以使用" On Subjob Ok"但是没有办法在作业之间关联哈希表。对于tHashInput属性,组件列表为空。
我试图找到一种方法来在作业之间保留哈希表,但没有看到任何内容。
答案 0 :(得分:1)
你做的第一个subjob看起来不太糟糕,它应该工作(第一个灰色矩形)。
您应该在下一个subjob中执行的操作是移除OnComponentOk
触发器,并使用单个OnSubjobOk
触发器将2个子工作链接在一起。它将从第一个子工作站(tMSSqlInput_1
)的可启动组件转到第二个子工作站(tHashInput_1
)的可启动组件。
可启动组件以其绿色背景识别。
此外,tHashInput
组件只能看到同一作业中的tHashOuput
个组件,因此在您的第二个屏幕截图中,正如您在儿童作业中看到的那样,它无法正常工作。