

# 使用查询结果和最近查询
<a name="querying"></a>

Amazon Athena 会将运行的每个查询的查询结果和查询执行结果元数据自动存储在*查询结果位置*（可以在 Amazon S3 中指定）中。如有必要，您可以在此位置访问这些文件以对其进行处理。您还可以直接从 Athena 控制台下载查询结果文件。

Athena 现在为您提供两种管理查询结果的选项；您可以使用客户拥有的 S3 存储桶，也可以选择托管查询结果功能。使用您自己的存储桶，您可以完全控制存储、权限、生命周期策略和保留，从而提供最大的灵活性，但需要更多管理。或者，当您选择托管查询结果选项时，该服务会自动处理存储和生命周期管理，从而无需配置单独的结果存储桶，也不会在预定的保留期后自动清理结果。有关更多信息，请参阅 [托管查询结果](managed-results.md)。

要首次设置 Amazon S3 查询结果位置，请参阅 [使用 Athena 控制台指定查询结果位置](query-results-specify-location-console.md)。

对于运行的每个查询，将自动保存输出文件。要使用 Athena 控制台访问和查看查询输出文件，IAM 主体（用户和角色）需要 Amazon S3 [GetObject](https://docs.amazonaws.cn/AmazonS3/latest/API/API_GetObject.html) 操作的权限来获得查询结果位置，并需要 Athena [GetQueryResults](https://docs.amazonaws.cn/athena/latest/APIReference/API_GetQueryResults.html) 操作的权限。可对查询结果位置进行加密。如果该位置已加密，用户必须具有加密和解密查询结果位置的相应密钥权限。

**重要**  
有权限对查询结果位置执行 Amazon S3 `GetObject` 操作的 IAM 委托人可以从 Amazon S3 中检索查询结果，即使 Athena `GetQueryResults` 操作的权限被拒绝。

**注意**  
当查询被取消或失败时，Athena 可能已将部分结果写入 Amazon S3。在这种情况下，Athena 不会从存储结果的 Amazon S3 前缀中删除部分结果。您必须删除带有部分结果的 Amazon S3 前缀。Athena 使用 Amazon S3 分段上传来写入数据 Amazon S3。我们建议您设置存储桶生命周期策略，以便当查询失败时终止分段上传。有关更多信息，请参阅《Amazon Simple Storage Service 用户指南**》中的 [使用存储桶生命周期策略中止未完成的分段上传](https://docs.amazonaws.cn/AmazonS3/latest/userguide/mpuoverview.html#mpu-abort-incomplete-mpu-lifecycle-config)。
在某些情况下，Athena 可能会自动重试查询执行。在大多数情况下，这些查询能够成功完成，并将查询 ID 标记为 `Completed`。这些查询可能在初始尝试时写入了部分结果，并且可能会生成不完整的分段上传。

**Topics**
+ [托管查询结果](managed-results.md)
+ [指定查询结果位置](query-results-specify-location.md)
+ [使用 Athena 控制台下载查询结果文件](saving-query-results.md)
+ [在 Athena 控制台中查看最近的查询](queries-viewing-history.md)
+ [将多个最近的查询下载到 CSV 文件](queries-downloading-multiple-recent-queries-to-csv.md)
+ [配置最近的查询显示选项](queries-recent-queries-configuring-options.md)
+ [将查询历史记录保留 45 天以上](querying-keeping-query-history.md)
+ [在 Amazon S3 中查找查询输出文件](querying-finding-output-files.md)