我想解决 Amazon Athena 中的服务配额错误。
简短描述
如果您的查询由于服务配额错误而在 Athena 中失败,则可能会收到以下错误响应之一:
- TooManyRequestsException
- ThrottlingException
- Query Timeout
- QueryString failure
要检查不同 AWS 区域的 Athena 端点和配额的默认值,请参阅服务配额。
解决方法
**注意:**在开始之前,请检查您当前的 Athena 配额。
TooManyRequestsException
DML 或 DDL 查询配额包含正在运行和排队的查询。如果您提交的查询数量超过了 DML 或 DDL 查询的指定限制,则会出现 TooManyRequestsException 错误响应。Athena 中常见的 DDL 查询包括 ALTER TABLE ADD PARTITION、CREATE TABLE 和 DROP。Athena 中常见的 DML 查询包括 SELECT、CREATE TABLE AS (CTAS) 和 INSERT INTO。
要检查当前队列,请使用以下方法之一:
**注意:**如果在运行 AWS 命令行界面 (AWS CLI) 命令时收到错误,请参阅 AWS CLI 错误故障排除。此外,请确保您使用的是最新版本的 AWS CLI。
**注意:**当您提高查询并发量时,您可以提交更多查询,但没有更多资源用于查询。在 Athena 中有资源运行查询之前,查询保持在排队状态。
要解决此错误,请使用 Athena 的预调配容量来增加查询并发量、管理访问容量的工作负载以及在工作负载之间共享容量。有关详细信息,请参阅管理查询处理能力。有关容量预留定价的详细信息,请参阅 Amazon Athena 定价。
有关进一步的故障排除,请参阅如何解决 Amazon Athena 中的 TooManyRequestsException 错误?
ThrottlingException
Athena 为每个 AWS 账户设有 API 调用配额。如果您超过了 API 配额,则会收到类似于以下内容的错误消息:
“ClientError: An error occurred (ThrottlingException) when calling the <API_name> operation: Rate exceeded.(ClientError:调用 <API_name> 操作时出错 (ThrottlingException):超出速率。)”
要解决此错误,请降低 API 调用的频率并使用重试逻辑。有关详细信息,请参阅管理和监控工作负载中的 API 节流的重试逻辑部分。
查询超时
当查询超过预定义的时间限制时,就会发生超时。对于 DML 查询,预定义的时间限制为 30 分钟。要解决此错误,请参阅如何解决 Athena 中的“Query Timeout(查询超时)”错误?
QueryString 失败
Athena 中的最大查询字符串长度为 262,144 字节 (B),您无法调整此配额。为防止查询字符串失败,请将长查询拆分为较小的查询。有关详细信息,请参阅如何在 Amazon Athena 中增加最大查询字符串长度?