如何在talend中应用行限制

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

使用 tdbInput 我可以从 Talend 读取数据,之后,我使用 tmap 来过滤行。过滤后,随着我不断更改SQL表中的数据,过滤后的行数会不时变化。

现在的情况是,当使用 tmap 过滤行时,如果通过过滤的行的百分比超过 80%,那么它将进入组件 tdboutput,否则该过程不应进一步进行。

例如:假设在我的表中没有。行数为 1000,通过 tmap 过滤后变为只有 600 行,那么我的进程应该停止,或者流程应该重定向到 tlogrow 组件。另一方面,如果没有。行数为 100,通过 tmap 过滤后只剩下 95 行,超过 85%,那么它应该进入 tdboutput。

通过我的研究,我了解到在 Talend 中我有一个“名为 NB_LINE 的全局变量,您可以使用它来获取写入组件文件或表的行数”,但我无法弄清楚如何使用此信息实现上述用例。

请让我知道如何为上述场景创造流程。

talend
1个回答
0
投票

我认为全局变量是正确的方法,但该变量只能在“AFTER”模式下访问,这意味着您必须退出子作业才能获取处理的行数。

在这种情况下有用的组件是 tHashInput/tHashOutput 对(默认情况下隐藏,但您可以通过项目设置中的“调色板”菜单激活它们)。 有了它们,您可以使用数据缓存,并分成多个子作业。

  • 一个过滤数据的子作业
  • 然后使用支持阈值条件的 IF 链接,您可以路由到所需的输出。

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