我遇到一种情况,我需要在talend 中并行运行五个不同的子作业。问题是,在我的选择查询中,我将获得五个不同的 ID,然后对于每个特定的 id,我需要运行五个不同的作业。 tparrallelize 组件的问题是,它不允许我将上下文变量传递给每个子作业,即本例中的 id 。
从表限制 5 中选择 id; ----> 同一作业的五个不同实例,具有不同的 id 作为参数
任何帮助将不胜感激
thanks
我不确定我是否正确理解你在这里所做的事情,但如果你要分解每个 ID 并将它们存储为 5 个单独的上下文变量,那么每个作业都可以访问自己的上下文变量,并为每个作业存储正确的 ID并使用它们。
因此,我将从您的数据库输入组件开始(只需选择您想要的 ID)并将其输入到tFlowToIterate
。通过迭代流将其连接到tFixedFlowInput
组件并在架构中创建 2 个字段:“键”和“值”。使用内联表指定“key”应该是((Integer)globalMap.get("tFlowToIterate_1_CURRENT_ITERATION"))
和“值”应该是((String)globalMap.get("row1.SupplierPartNumber"))
.
![Iterate through the returned IDs and put in Global Map and then retrieve](https://i.stack.imgur.com/bxGNK.png)
然后我会把它扔进tMap
我放置的组件"ContextNumber" + row2.key
进入映射的键列只是为了使其比作为上下文的迭代数更明显,然后将其直接输入到tContextLoad
.
![Map the iteration value](https://i.stack.imgur.com/YSkK0.png)
从那里您可以 OnSubjobOK 到您的tParallelize
将您的所有工作组成并链接在一起。在每个作业中配置作业以使用适当的上下文变量。
![enter image description here](https://i.stack.imgur.com/ewokd.png)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)