【发布时间】:2023-01-13 10:24:17
【问题描述】:
我开始分别使用AWS Data Wrangler 和Athena 将我的数据文件上传到 S3,并能够查询它们。我的问题是关于“安全地”更新表中数据的过程。
这是我所做的:
-
我使用了 AWS Data Wrangler,
wr.s3.to_parquet( df=my_df, path='s3://temp', dataset=True, partition_cols = ['date'], concurrent_partitioning = True, mode = append )将我的
DataFrame导出到 S3 - 作为parquet文件。 -
我使用 AWS Glue 在 S3 中爬取我的数据文件,并创建了
Table A。 -
通过 Athena,我可以在
Table A中查询我的数据。现在我想更新我在表A中的数据。我的问题是:
- (插入新行):
如果我按照上面的操作,将模式更改为“覆盖”,那么我在 S3 中的所有数据都将被删除(预期,不可取!),新数据文件将写入 S3。因此,Glue 目录爬网会在表 A 中生成新数据行,同时删除我在
Table A中的所有过去数据。 这不是我的愿望。有安全的方法吗? - (更新行):
如果我想怎么办更新
Table A中的数据。使用 AWS 牧马人,我怎样才能做到这一点,而不添加多余的Table A中的行?我已经使用
mode=append测试了 (2),实际上我最终在我的Table A中得到了多余的行。如果您愿意分享您的想法,我将不胜感激
谢谢,
- (插入新行):
如果我按照上面的操作,将模式更改为“覆盖”,那么我在 S3 中的所有数据都将被删除(预期,不可取!),新数据文件将写入 S3。因此,Glue 目录爬网会在表 A 中生成新数据行,同时删除我在
【问题讨论】:
标签: amazon-web-services amazon-athena athena aws-data-wrangler