如何将Talend tHashInput连接到其他作业的tHashOutput

时间:2018-02-01 23:34:12

标签: talend

[我是一位经验丰富的DataStage开发人员,正在转向Talend。试图联系概念。]

我在DataStage中有以下工作,我将其归类为" sync" job的目的是同步不同服务器上两个表中的内容。它实际上是一个两遍作业,但使用相同的两个哈希表,而不需要在两次传递中读取两个源表。读取表一次,填充哈希表,然后哈希表用作每个传递的提要和查找

enter image description here

我试图在Talend ESB中构建一个类似的工作,并且大部分都在工作,但无法弄清楚如何将哈希表绑定在一起。我理解需要在tHashInput属性中选择关联的组件。

我知道我可以使用" On Component OK"触发上部作业中的两个哈希表,并将它们绑定到下部作业的起始哈希表。但是当我跑步时,第二份工作失败了,因为APPLCODE_SRC工作尚未初始化 - 我不明白,因为它应该在第二份工作开始之前完成 - 除非我不明白什么" On Component OK"真的意思是。

enter image description here

我也尝试在tRunJob中使用上层组件。在这里,我可以使用" On Subjob Ok"但是没有办法在作业之间关联哈希表。对于tHashInput属性,组件列表为空。

enter image description here

我试图找到一种方法来在作业之间保留哈希表,但没有看到任何内容。

1 个答案:

答案 0 :(得分:1)

你做的第一个subjob看起来不太糟糕,它应该工作(第一个灰色矩形)。

您应该在下一个subjob中执行的操作是移除OnComponentOk触发器,并使用单个OnSubjobOk触发器将2个子工作链接在一起。它将从第一个子工作站(tMSSqlInput_1)的可启动组件转到第二个子工作站(tHashInput_1)的可启动组件。
可启动组件以其绿色背景识别。

此外,tHashInput组件只能看到同一作业中的tHashOuput个组件,因此在您的第二个屏幕截图中,正如您在儿童作业中看到的那样,它无法正常工作。