Amazon redshift 使用talend的增量更新

Amazon redshift 使用talend的增量更新,amazon-redshift,talend,aws-rds,Amazon Redshift,Talend,Aws Rds,我的需求需要每天从myrds到红移执行增量更新, 我在rds表中有一个主键“id” 是否有任何可能的方法可以将id保存在talend中的变量中,以及 nxt时间talend作业运行时验证sql 其中sorucerds id>destredshit id 因此,它应该只更新上次更新后插入的行 我试过了,但效果不理想 我是talend的新手,所以如果有任何建议对我会有很大帮助 关于使用tMySqlInputcomponet(或用于查询RDS的任何组件),并编写以下查询: "select MAX(i

我的需求需要每天从myrds到红移执行增量更新, 我在rds表中有一个主键“id” 是否有任何可能的方法可以将id保存在talend中的变量中,以及 nxt时间talend作业运行时验证sql

其中sorucerds id>destredshit id

因此,它应该只更新上次更新后插入的行 我试过了,但效果不理想 我是talend的新手,所以如果有任何建议对我会有很大帮助


关于

使用
tMySqlInput
componet(或用于查询RDS的任何组件),并编写以下查询:

"select MAX(id) as maxid from <your table name>"

这将把
tMySqlInput
输出中的
maxid
值分配给上下文变量。您可以在以后的工作中使用它。

您可以查询Redshift以查找
MAX(id)
,然后从RDS中选择id大于检索值的位置。是的,我在发布的另一个查询中做了完全相同的事情,但现在我希望将其保存为一个变量,然后使用MAX(id)从该变量保存非常感谢您的帮助,但它仍然不起作用,请查看详细信息tmysqlrdsinput1“从test.test2中选择max(id)”然后使用tjavarow组件作为context.maxid=row1.maxid;然后将其作为“Select*from test2 where id>”“+context.maxid+”””传递到TMYSQLRDSINSPUT2的输入字符串中,然后将查询的输出另存为tmysqloutput as stagingtable作业正在运行,没有任何错误,但它没有对暂存表执行任何更新。您能建议可能出现的问题吗,第一个查询必须针对红移数据库。您必须选择已处理记录的最大id,另外放入NVL(MAX(id),0)以确保如果红移中没有记录,您的第二次查询可以选择所有id>0。但我不想在myrds中创建一个暂存表,然后将暂存表中的数据附加到红移,即使我的源表增加了,最大值(id)也随之增加。talend中是否有任何变量或组件可用于保存我的上一个最大值(id),然后我可以编写一个查询来选择并仅显示在上次保存的最大值(id)之后插入的行,您必须对目标表进行查询,获取最后插入的记录。然后从目标中ID大于最大值的源中选择。您不需要临时表。。
context.maxid = row1.maxid