AWS Athena可以更新或插入存储在S3中的数据吗?

kzf*_*fid 9 amazon-web-services

该文档只是说它是一个查询服务,但没有明确声明它可以或不可以执行数据更新.

如果Athena无法插入或更新,是否还有其他aws服务可以像普通数据库那样做?

Joh*_*ein 12

事实上,Amazon Athena是一种查询服务 - 它只允许从Amazon S3 读取数据.

但是,一个例外是查询结果会自动写入S3.因此,您可以使用查询生成可供其他人使用的结果.它不是在更新数据,而是在生成数据.

我之前尝试在另一个Athena查询中使用Athena输出由于自动生成的标头问题而无效,但可能有一些可用的变通方法.

如果您正在寻找可以在S3中更新信息的服务,您可以使用Amazon EMR,它基本上是一个托管的Hadoop集群.功能强大且功能强大,可以肯定地更新S3中的信息,但学习起来相当复杂.

  • **更新**:Amazon Athena 现在支持“INSERT INTO” https://aws.amazon.com/about-aws/whats-new/2019/09/amazon-athena-adds-support-inserting-data-into-选择查询的表结果/ (4认同)
  • **更新:** Amazon Athena 现在可以`CREATE TABLE AS` 来根据现有表的查询创建新表。数据会存储回 Amazon S3,并且可以采用各种格式,包括 Parquet 和 ORC。 (2认同)

Har*_*sad 6

Amazon Athena 添加了对使用 SELECT 查询的结果或使用提供的一组值将数据插入表的支持

Amazon Athena 现在支持使用 INSERT INTO 语句将新数据插入到现有表中。

https://aws.amazon.com/about-aws/whats-new/2019/09/amazon-athena-adds-support-inserting-data-into-table-results-of-select-query/

https://docs.aws.amazon.com/athena/latest/ug/insert-into.html

不支持分桶表

分桶表不支持 INSERT INTO。有关更多信息,请参阅分桶与分区


Ash*_*han 5

AWS S3是对象存储。Athena和S3 Select均用于查询。在S3中修改对象(文件)的唯一方法是从S3检索,修改并上传回S3。