Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/amazon-web-services/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Amazon web services 在aws athena中为不同的表设置不同的输出结果位置_Amazon Web Services_Amazon Cloudfront_Amazon Athena - Fatal编程技术网

Amazon web services 在aws athena中为不同的表设置不同的输出结果位置

Amazon web services 在aws athena中为不同的表设置不同的输出结果位置,amazon-web-services,amazon-cloudfront,amazon-athena,Amazon Web Services,Amazon Cloudfront,Amazon Athena,我已经启用了cloudfront日志,并希望通过它捕获一些信息 为此,我使用aws athena查询cf日志。这对于我的登台环境来说绝对是个不错的选择,因为它会将查询结果存储在我的登台存储桶中 对于生产,我创建了另一个表,该表将从生产bucket查询cf日志文件,结果我希望将其存储在不同的s3 bucket(生产bucket)中。但我并没有找到任何方法来获得不同的输出查询结果位置是否有任何方法可以为不同的表设置不同的输出结果位置如果使用CREATE TABLE AS语句创建表,则可以在with子

我已经启用了cloudfront日志,并希望通过它捕获一些信息

为此,我使用aws athena查询cf日志。这对于我的登台环境来说绝对是个不错的选择,因为它会将查询结果存储在我的登台存储桶中


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

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

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

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

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

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

您可以在中找到有关如何设置位置的更详细信息:

Athena使用的查询结果位置由工作组设置和客户端设置的组合决定。客户端设置基于您运行查询的方式

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

因为我不能删除以前的文件,这将是未来参考所需的。当我运行此查询以创建表时