AWS Glue RDS 增量加载

3

我正在尝试使用AWS Glue从AWS RDS(MySQL)加载数据到Redshift,并希望实现增量加载数据。通过使用作业书签,Glue可以跟踪新添加的数据,但无法跟踪更新的行。是否有方法仅加载已更新的数据?也许可以使用MySQL源表中的updated_at字段?

2个回答

2
这是使用作业书签不可能实现的。根据AWS文档:
作业书签仅为关系数据库(JDBC连接)输入源的有限用例实现。对于此输入源,仅在表的主键按顺序排列时支持作业书签。此外,作业书签只搜索新行,而不是更新的行。这是因为书签会寻找已经存在的主键。

https://docs.aws.amazon.com/glue/latest/dg/monitor-continuations.html

胶水将需要将RDS数据的全部加载到动态框架或数据帧中。然而,如果您想避免截断红移表并重新加载所有数据,则可以使用此数据执行upsert操作插入到红移数据库中。

https://docs.aws.amazon.com/redshift/latest/dg/c_best-practices-upsert.html


1

您可以使用查询来过滤源JDBC数据库中的数据,以查找更新的记录,如下面的示例所示。我已将日期作为参数传递,以便在此示例中的每次运行中仅获取mysql数据库中的最新值。

请参考this答案示例


一个好的地方来保存最后处理的时间戳是哪里?一个S3文件? - Guilherme Torres Castro

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接