amazon-web-services - 雅典娜查询结果在S3上的特定路径

标签 amazon-web-services amazon-s3 amazon-athena

我知道,运行保存的Athena查询会根据查询的名称和查询的运行日期将结果存储在Amazon S3位置,如下所示:

QueryLocation}/{QueryName|Saved}/{yyyy}/{mm}/{dd}/{QueryID}/



是否可以覆盖它并将其存储在类似于

QueryLocation}/QueryName



每当查询运行时都覆盖结果文件吗?

当然可以通过在S3上重命名(移动+删除)文件来完成,但是想知道是否有更直接的方法。

最佳答案

创建表为选择

将Athena查询结果存储在S3中特定位置的另一种方法是使用CTAS -Query(CREATE TABLE AS SELECT)。

使用此方法有很多优点,因为您甚至可以指定结果格式。压缩JSON,Parquet等...

CREATE TABLE default.my_result_table
WITH 
(
  format='JSON',
  external_location='s3://MY_BUCKET/MY_KEY/...'
) AS

SELECT * FROM MY_SOURCE_TABLE WHERE ....

您甚至可以直接指定要使用的分区(例如
CREATE TABLE default.my_result_table
WITH 
(
  format='Parquet',
  external_location='s3://MY_BUCKET/MY_KEY/...',
  partitioned_by = ARRAY['parition_key_1', ...]
) AS

SELECT * FROM MY_SOURCE_TABLE WHERE ....

关于amazon-web-services - 雅典娜查询结果在S3上的特定路径,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47449163/

相关文章:

node.js - EC2 实例 'took too long to respond'

amazon-web-services - AWS 代码部署 : stuck on install step

amazon-web-services - AWS 中类似于 Google Bigquery 的分析工具是什么?

amazon-web-services - 您的 Amazon Redshift 数据库是否需要与机器学习模型位于同一区域?

ruby-on-rails - 在 ElasticBeanstalk 上预部署脚本

amazon-web-services - 使用 DefaultAWSCredentialsProviderChain 将 Apache Drill 连接到 Amazon S3

python - AWS Lambda 函数无法扩展 - 为什么以及有哪些选项?

amazon-s3 - 查询寻址的 S3 存储桶与该集群位于不同的区域

amazon-web-services - 是否可以使用 AWS Athena 查询压缩文件?

hive - Amazon Athena 上的重复数据删除