【发布时间】:2017-02-28 00:43:28
【问题描述】:
我正在开发一个 Talend ETL 工作,如下所示。
我有每天从中提取数据的源数据库。我的目标表包含两列 id、name。对于 id 列,我从 Numeric.Sequence("s1",1,1) 例程生成值。但是我的问题是,当我执行作业时,它会从起始值生成值,即在 Numeric.Sequence 例程中提供的值。但我想获得最后生成的值作为起始值。
解决方案:我可以通过从表中提取最大 id 来实现但我不想使用表。 我想将使用 Numeric.Sequence 例程生成的最大 id 值存储在上下文变量中,并在我执行作业时将其用作起始值。我试过了,但它只产生了新的价值。
请让我知道 Talend 中的所有可用选项。
【问题讨论】:
-
Talend 是一个面向对象的工具。在本次运行中不能设置下一次作业运行的顺序起始值。如果您在 globalMap 中创建一个对象并存储下一个作业的序列起始值,那么在下一个作业运行期间,该 globalMap 将被重新初始化。您可以做的是,您可以将下一次作业运行的起始值保存到文本文件中,并在下一次作业运行时读取该文件。
标签: talend