首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >封闭循环在Talend作业中不起作用

封闭循环在Talend作业中不起作用
EN

Stack Overflow用户
提问于 2017-12-12 20:25:15
回答 2查看 369关注 0票数 1

我有一个Talend Job,其中组件以某种方式形成了一个闭环。如下图所示:

这两个tMap输出的模式是相同的。现在,在将任何tMap连接到tUnite之后,当我尝试连接第二个tMap时,它没有连接到它。我听说Talend不允许在作业中出现闭环。这是真的吗?如果是,原因是什么?有人有类似的问题here,但没有找到答案。

EN

回答 2

Stack Overflow用户

发布于 2017-12-12 21:02:30

Talend实际上创建了一个Java程序;从本质上讲,这就是您遇到限制的原因。

tUnite依次获取每个输入提供的所有数据,即A的所有数据,B的所有数据,C的所有数据。

由于用于每个流的编程循环的性质,它不能从A获取行1,然后从B获取行1,然后从C获取行1,然后从A获取行2,然后从B获取行2,等等。然而,tMap multiple outputs或tReplicate确实创建了行1到A、行1到B、行1到C、行2到A、行2到B等等。

这就是为什么不能拆分然后重新加入流的原因。

票数 2
EN

Stack Overflow用户

发布于 2017-12-12 23:07:39

PreetyK已经解释了原因。我将解释如何绕过这一限制。

您可以将tMap_10和tMap_11的输出分别存储在一个tHashOutput中。在第二个tHashOutput上,您必须选中"Link with a tHashOutput“复选框,然后从下拉列表中选择另一个tHashOutput。这告诉它写入与第一个tHashOutput相同的缓冲区,有效地使您的tMap_10和tMap_11输出“联合”。在下一个子作业中,使用tHashInput从tHashOuput读取数据(必须使用单个tHashInput,因为两个输出共享相同的数据)。

以下是一些截图:

然后是tHashInput:

请注意,默认情况下,这些组件是隐藏的。你必须转到文件>项目设置>设计器>调色板设置,然后将它们从左到右移动,如下所示。然后,您将在您的调色板中找到它们。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47772620

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档