如何更改 AWS Athena select 查询的输出 CSV 文件名

How to change output CSV file name of AWS Athena select query

我有一个 Athena select 查询,结果将保存在 s3 存储桶位置。 上面的场景工作正常,但文件名将是一堆随机字符。 我需要将结果保存为特定的文件名 文件名应为 report.csv

我的查询是从 shell 脚本执行的。

aws athena start-query-execution \
    --query-string "select  user_id,case file_type from <table name> group by file_type,user_id" \
    --work-group "primary" \
    --query-execution-context Database=<database name>\
    --result-configuration "OutputLocation=s3://<bucket name>/report.csv"

当前输出将是这样的

有没有设置文件名的简单方法

您不能更改结果的名称。但是,您可以在查询完成后复制该文件:

aws s3 cp s3://<output_bucket>/9411<…>.csv s3://<other_bucket>/report.csv

aws athena start-query-execution 只开始查询,不等待查询完成。您可以使用 aws athena get-query-execution 轮询查询的状态,或者使用 aws s3 wait object-exists.

等待结果文件出现在 S3 上

如果您想要一个 shell 脚本来运行查询、等待它完成并处理错误情况,请参阅 https://gist.github.com/iconara/447a569d00a7a9c4aff86e9e0b14ff11