跳至内容

如何解决 Athena 中的 "Query timeout" 错误?

1 分钟阅读
0

当我在 Amazon Athena 中运行查询时,查询失败并收到 "Query timeout" 错误。

解决方法

当 Athena 查询超过 DML 查询超时配额时,查询会因超时错误而失败。要解决此错误,请采用以下解决方案。

减少或增加 Athena 的查询运行时

按照如何解决将数据从 Athena 导入 Quick Sight SPICE 时出现的 "query timeout" 错误?中的说明进行操作

为 Athena 查询超时设置通知

要接收查询超时和失败的通知,请使用 Amazon CloudWatch 事件规则捕获该事件。然后,使用 Amazon Simple Notification Service (Amazon SNS) 设置通知

查询 Amazon S3 访问日志

如果您对 Amazon Simple Storage Service (Amazon S3) 访问日志运行查询并且查询超时,则使用 AWS Glue ETL 作业对您的 Amazon S3 数据进行分区。然后,在有限的分区上运行 Athena 查询。有关说明,请参阅如何使用分区的 Amazon S3 访问日志防止 Athena 查询超时?

查询 CloudTrail 数据

如果您使用 Athena 查询 AWS CloudTrail 数据,则查询可能需要很长时间才能运行或超时。这是因为即使您对 CloudTrail 表进行分区以减少查询运行时,CloudTrail 日志的大小也会随着时间的推移而增加。

使用分区投影手动创建 CloudTrail 表。这使 Athena 能够动态计算 CloudTrail 表的值,并减少查询运行时。分区投影会根据配置计算分区值和位置,从而免去手动分区管理。

使用 CTAS 查询

为了提高查询性能,请使用 CREATE TABLE AS SELECT (CTAS) 查询根据另一个查询的 SELECT 语句的结果在 Athena 中创建新表。CTAS 只需一步即可根据查询结果创建表,使原始数据集更易于使用。CTAS 查询还能提高查询性能并降低查询成本。有关示例,请参阅 CTAS 查询示例

使用 EXPLAIN 和 EXPLAIN ANALYZE 语句

在 Athena 中使用 EXPLAIN 和 EXPLAIN ANALYZE 处理复杂查询。EXPLAIN 语句通过完善 SQL 语句和验证分区修剪来优化查询。最佳做法是查看 EXPLAINEXPLAIN ANALYZE 语句的注意事项和限制

有关更多信息,请参阅 EXPLAIN 示例EXPLAIN ANALYZE 示例

相关信息

Amazon Athena 的十大性能调试技巧

如何在另一个查询中使用 Amazon Athena 查询的结果?