scala - AWS Glue Scala Upsert
问题描述
我正在尝试使用 Scala 中的 AWS Glue 将数据从另一个存储桶插入到现有的 S3 存储桶中。有没有标准的方法来使用它?我发现的一种方法是使用 SQL 的 MERGE 方法。使用它的优点和缺点是什么?
谢谢
解决方案
您无法在 s3 中真正实现“SQL MERGE”方法,因为无法更新现有数据对象。
一种解决方法是在 Glue 作业中加载现有行,将其与传入的数据集合并,删除过时的记录并覆盖 s3 上的所有对象。如果您有大量数据,则将其按某些列进行分区会更有效,然后覆盖那些应仅包含新数据的分区。
如果您的目标是防止重复,那么您可以执行类似操作:加载现有的,从 s3 中已经存在的传入数据集中删除这些记录(在上一步加载),然后仅写入 s3 新记录。
推荐阅读
- arrays - 从 React 中的状态数组中删除项目
- java - 总是从房间表接收空列表
- python - 为什么 'x = x + something' 不返回与 'x += something' 相同的结果?
- angular - Angular Material mat-select 如何从材料表中填充值?
- r - 如何根据 R 中数据框中的多个子句选择特定列?
- reactjs - 如何在我的 ag-grid 单元格中放置一个 react jsx 组件
- java - 如何使用第三方 java 库 github 项目?
- algorithm - 循环列表中不相邻元素的最大值
- vba - 新版本 SolidWorks 中的 GetObject 错误
- powershell - 重命名项目:无法重命名,因为 ... 的项目不存在