Talend - 如何根据特定条件运行子作业

问题描述 投票:0回答:1

我遇到了一个问题,要求我必须在 Postgres 中运行查询来检查指标是 Y 还是 N。如果指标是 Y,那么我必须使用名为 SubJob1 的 ETL 管道,并且条件是否成立如果是 N,那么我必须运行名为 SubJob2 的 ETL 管道。我尝试使用 tjavaRow、tFlowtoIterate 等来实现此目的,但没有成功。

我想做什么

tpostgresqlinput(检查条件)---> tjavaRow(检查是 Y 还是 N)

想要什么

  1. 检查 Postgres 列是否是 Y 或 N
  2. 如果该列是 Y,则运行 Subjob1
  3. 如果列是N,则运行Subjob2

我现在真的不知道如何实现这一目标。如果有人有任何建议,我将不胜感激。如果需要更多信息,请告诉我。谢谢你。

talend
1个回答
0
投票

嗨,我认为您应该将指标存储到 globalVar 中,然后在“Run If”触发器中使用它。

所以工作看起来像这样:

直接发送到 tFLowToIterate 的 PG 输入,您也可以使用 tJava、tSetGlobalVar,...(我通常使用 tFlowIterate,以防需要多次执行),然后使用两个“Run If”来检查您的条件,在本例中:

((String)globalMap.get("IND")) == "Y"

对于第一个管道和:

((String)globalMap.get("IND")) == "N"

第二个

这是 tFlowToIterate 的配置:

© www.soinside.com 2019 - 2024. All rights reserved.