每次使用tMap在Talend中运行作业时创建一个增量计数器

时间:2019-04-22 07:10:37

标签: database postgresql triggers talend

如果我使用tMap组件在Talend Data Integration中运行作业,我想问一下如何在每行创建一个特定计数器

例如,这是一个结果,其中每行5个数据的计数器为0

餐桌动物
动物柜台
斑马0
斑马0
斑马0
斑马0
斑马0

当我使用tMap运行作业时,我想要这样的最终结果

桌兽:最终结果
动物柜台
斑马0
斑马0
斑马0
斑马0
斑马0
斑马1
斑马1
斑马1
斑马1
斑马1

每次我执行一项工作时,计数器上的字段总是加1,并且总是插入数据

致谢

2 个答案:

答案 0 :(得分:0)

我看到的两个选项是:

  1. 使用存储在文件中的上下文变量。您需要在每个作业之前加载此文件,并在完成之前对其进行更新。在Tmap中看起来像这样:Integer.parseInt(context.Counter)+ 1

  2. 假定您将记录加载到数据库中,对最大计数器值进行查找,并将其分配给TMap中的变量

答案 1 :(得分:0)

我想告诉你一种替代方法,做你想做的事。

我使用的是tJavaRow组件,而不是使用tMap,结果与您要求的相同,但使用Java代码即可实现。

作业通过tFileInputDelimited从.csv中读取,该文件已获得下一个data

接下来,您将看到一个tJavaRow组件,其中的Java代码位于其中,最后是一个tlogRow组件,用于显示最终数据集。 -Job Image-

  

tJavaRow中的代码

username

这里您有the image of the final result

\(ToT)/