我正在开发Talend ETL工作如下。
我有源数据库,我每天从中提取数据。我的目标表包含两列id,name。对于id列,我从Numeric.Sequence(" s1" 1,1)例程生成值。但我的问题是,当我执行工作时,它从起始值生成值,即在Numeric.Sequence例程中提供。但我希望将最后生成的值作为起始值。
解决方案:我可以通过从表中提取max id来实现它但是我不想使用表格。 我想在上下文变量中存储使用Numeric.Sequence例程生成的最大id值,并在执行我的作业时将其用作起始值。我试过了,但它只是产生了新的价值。
请告诉我Talend中的所有可用选项。
答案 0 :(得分:0)
每次执行作业时都会重置作业上下文。 请记住,您正在运行Java程序,只有当程序处于活动状态而不是之后才会保留变量。
解决方案是使用数据库序列(使用postgreSQL的示例):