微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

在AWS Athena中为不同的表设置不同的输出结果位置

如何解决在AWS Athena中为不同的表设置不同的输出结果位置

我已启用Cloudfront日志,并希望通过它捕获一些信息。

为此,我正在使用aws athena查询cf日志。在我的登台环境中,这绝对可以正常工作,因为它将查询结果存储在我的登台存储桶中。

对于生产,我创建了另一个表,该表将从生产桶中查询cf日志文件,结果我要将其存储在不同的s3存储桶(生产桶)中。但是我没有找到任何方式来具有不同的输出查询结果位置。 有什么方法可以为不同的表设置不同的输出结果位置

解决方法

我假设您正在谈论S3中的QueryResultLocation:

QueryResultsLocationInS3是由工作组设置或客户端设置指定的查询结果位置。

您可以在Specifying a Query Result Location中找到有关如何设置位置的更多详细信息:

Athena使用的查询结果位置取决于工作组设置和客户端设置。客户端设置取决于您如何运行查询。

  • 如果您使用Athena控制台运行查询,则在导航栏中的“设置”下输入的“查询结果”位置将确定客户端设置。
  • 如果您使用Athena API运行查询,则StartQueryExecution操作的OutputLocation参数将确定客户端设置。
  • 如果使用ODBC或JDBC驱动程序运行查询,则在连接URL中指定的S3OutputLocation属性将确定客户端设置。
,

如果要使用CREATE TABLE AS语句创建表,则可以在WITH子句中为该特定表设置结果位置。例如:

 CREATE TABLE table_name
 WITH (
   external_location ='s3://my-bucket/tables/table_name/'
 )
 AS
 SELECT * FROM database.my_table

不幸的是,这必须是一个空白位置才能使查询正常工作。如果您想重新运行此查询或更改位置,则需要删除该位置中的所有文件。有关更多详细信息,请参见Athena documentation

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。