首页 > 解决方案 > AWS Glue Scala Upsert

问题描述

我正在尝试使用 Scala 中的 AWS Glue 将数据从另一个存储桶插入到现有的 S3 存储桶中。有没有标准的方法来使用它?我发现的一种方法是使用 SQL 的 MERGE 方法。使用它的优点和缺点是什么?

谢谢

标签: scalaamazon-web-servicesaws-glue

解决方案


您无法在 s3 中真正实现“SQL MERGE”方法,因为无法更新现有数据对象。

一种解决方法是在 Glue 作业中加载现有行,将其与传入的数据集合并,删除过时的记录并覆盖 s3 上的所有对象。如果您有大量数据,则将其按某些列进行分区会更有效,然后覆盖那些应仅包含新数据的分区。

如果您的目标是防止重复,那么您可以执行类似操作:加载现有的,从 s3 中已经存在的传入数据集中删除这些记录(在上一步加载),然后仅写入 s3 新记录。


推荐阅读