Closed loop does not work in a Talend Job

落爺英雄遲暮 提交于 2019-12-24 21:36:24

问题


I have a Talend Job, where somehow a closed loop is formed by the components. Image is as follows:

The schemas of both the tMap outputs is same. Now after connecting any tMap to tUnite, when I try to connect the second tMap, it does not connect to it. I heard that Talend does not allow, a closed loop in a Job. Is that true? If yes, the Why? Someone had a similar question here, but found no answers.


回答1:


Talend actually creates a Java program; essentially that is the reason for the limitation you've encountered.

tUnite take all the data provided by each of the inputs in turn i.e. all of A then all of B then all of C.

It cannot take row 1 from A then row 1 from B then row 1 from C then row 2 from A then row 2 from B etc. because of the nature of programming loops used for each flow. However, tMap multiple outputs or tReplicate do create row 1 to A then row 1 to B then row 1 to C then row 2 to A then row 2 to B etc..

This is why you cannot split and then rejoin flows.




回答2:


PreetyK has explained the why. I'll explain how to work around this limitation.
You can store the output from tMap_10 and tMap_11 in a tHashOutput each. On the 2nd tHashOutput you must check "Link with a tHashOutput" checkbox and then select the other tHashOutput from the droplist. This tells it to write to the same buffer as the 1st tHashOutput effectively making "union" of your tMap_10 and tMap_11 outputs. On the next subjob, you use a tHashInput to read from your tHashOuput (you must use a single tHashInput as the 2 outputs share the same data).

Here are some screenshots :

Then the tHashInput:

Note that by default these components are hidden. You have to go to File > Project Settings > Designer > Palette settings, and then move them from left to right pane as bellow. You will then find them in your palette.



来源:https://stackoverflow.com/questions/47772620/closed-loop-does-not-work-in-a-talend-job

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!