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

How to connect Talend tHashInput to tHashOutput from other job

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

我在 DataStage 中有以下作业,我将其归类为 "sync" 作业,因为它的目的是同步不同服务器上两个 table 中的内容。它实际上是一个两次通过的作业,但使用相同的两个散列 tables 而无需在两次通过时都读取两个源 tables。 table 被读取一次,散列 table 被填充,然后散列 table 用作每个 pass

的提要和查找

我正在尝试在 Talend ESB 中构建一个类似的作业并且大部分都在工作,但无法弄清楚如何将散列 table 绑定在一起。我了解需要 select tHashInput 属性中的关联组件。

我知道我可以使用上层作业中两个散列 table 的 "On Component OK" 触发器,并将它们绑定到下层作业的起始散列 table。但是当我 运行 时,第二个作业失败了,因为 APPLCODE_SRC 作业还没有初始化——我不明白,因为它应该在第二个作业开始之前就已经存在并完成了——除非我不明白 "On Component OK" 的真正含义。

我也试过在 tRunJob 中使用上层组件。在这里,我可以使用 "On Subjob Ok" link 这两个,但是无法将作业之间的散列 table 关联起来。 tHashInput 属性的组件列表为空。

我试图找到一种方法来在作业之间保留哈希值 table,但在那里没有看到任何东西。

你做的第一个子作业看起来还不错,应该可以(第一个灰色矩形)。

您在下一个子作业中应该做的是删除 OnComponentOk 触发器,并使用单个 OnSubjobOk 触发器将两个子作业一起 link。它将从第一个子作业 (tMSSqlInput_1) 的可启动组件转到第二个子作业 (tHashInput_1) 的可启动组件。
绿色背景识别可启动组件。

此外,tHashInput 个组件只能看到 tHashOuput 个组件在同一个作业中,因此在您的第二个屏幕截图中,因为它们在子作业中,所以它不会工作。