在 Amazon S3 中查找查询输出文件
查询输出文件存储在采用以下路径模式的 Amazon S3 子文件夹中,除非在其配置覆盖了客户端设置的工作组中进行查询。当工作组配置覆盖客户端设置时,查询将使用工作组指定的结果路径。
QueryResultsLocationInS3
/[QueryName
|Unsaved/yyyy/mm/dd
/]
-
QueryResultsLocationInS3
是由工作组设置或客户端设置指定的查询结果位置。有关更多信息,请参阅本文后面的指定查询结果位置。 -
以下子文件夹仅为从控制台运行且工作组配置未覆盖其结果路径的查询而创建。从 AWS CLI 或使用 Athena API 运行的查询将直接保存到
QueryResultsLocationInS3
。-
QueryName
是要保存其结果的查询的名称。如果查询已运行但未保存,则使用Unsaved
。 -
yyyy/mm/dd
是查询运行的日期。
-
与 CREATE TABLE AS SELECT
查询关联的文件存储在以上模式的 tables
子文件夹中。
识别查询输出文件
查询输出文件会按照查询名称、查询 ID 和查询运行日期保存到 Amazon S3 中的查询结果位置。每个查询的文件都使用 QueryID
命名,这是在每个查询运行时 Athena 为其分配的唯一标识符。
会保存以下文件类型:
文件类型 | 文件命名模式 | 描述 |
---|---|---|
查询结果文件 |
|
DML 查询结果文件以逗号分隔值 (CSV) 格式保存。 DDL 查询结果保存为纯文本文件。 您可以在使用控制台时从控制台的 Results(结果)窗格下载这些文件,也可以从查询 History(历史记录)中下载。有关更多信息,请参阅 使用 Athena 控制台下载查询结果文件。 |
查询元数据文件 |
|
DML 和 DDL 查询元数据文件以二进制格式保存,无法人为读取。文件扩展名对应于相关的查询结果文件。Athena 在使用 |
数据清单文件 |
|
生成数据清单文件以跟踪当 INSERT INTO 查询运行时 Athena 在 Amazon S3 数据源位置创建的文件。如果查询失败,清单也将跟踪查询要写入的文件。清单对于识别由于查询失败而导致的孤立文件很有用。 |
要使用 AWS CLI 标识查询输出位置和结果文件,请运行 aws athena get-query-execution
命令,如以下示例所示。用查询 ID 替换 abc1234d-5efg-67hi-jklm-89n0op12qr34
。
aws athena get-query-execution --query-execution-id
abc1234d-5efg-67hi-jklm-89n0op12qr34
该命令返回的输出类似于下方内容。有关每个输出参数的说明,请参阅 AWS CLI 命令参考中的 get-query-execution。
{ "QueryExecution": { "Status": { "SubmissionDateTime": 1565649050.175, "State": "SUCCEEDED", "CompletionDateTime": 1565649056.6229999 }, "Statistics": { "DataScannedInBytes": 5944497, "DataManifestLocation": "s3://amzn-s3-demo-bucket/athena-query-results-123456789012-us-west-1/MyInsertQuery/2019/08/12/abc1234d-5efg-67hi-jklm-89n0op12qr34-manifest.csv", "EngineExecutionTimeInMillis": 5209 }, "ResultConfiguration": { "EncryptionConfiguration": { "EncryptionOption": "SSE_S3" }, "OutputLocation": "s3://amzn-s3-demo-bucket/athena-query-results-123456789012-us-west-1/MyInsertQuery/2019/08/12/abc1234d-5efg-67hi-jklm-89n0op12qr34" }, "QueryExecutionId": "abc1234d-5efg-67hi-jklm-89n0op12qr34", "QueryExecutionContext": {}, "Query": "INSERT INTO mydb.elb_log_backup SELECT * FROM mydb.elb_logs LIMIT 100", "StatementType": "DML", "WorkGroup": "primary" } }