服务限额 - Amazon Athena
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

服务限额

注意

Service Quotas 控制台提供有关 Amazon Athena 配额的信息。对于可调整的限额,您可以使用服务限额控制台请求增加限额。有关与 Amazon Glue 相关的架构限制,请参阅 Amazon Glue 端点和限额页面。有关 Amazon 服务配额的一般信息,请参阅中的Amazon 服务配额Amazon Web Services 一般参考

查询

您的账户对于 Amazon Athena 具有以下与查询相关的配额。有关详细信息,请参阅 Amazon Web Services 一般参考的 Amazon Athena 端点和限额页面。

  • 活跃 DDL 查询 – 活跃 DDL 查询的数量。DDL 查询包括 CREATE TABLEALTER TABLE ADD PARTITION 查询。

  • DDL 查询超时 – DDL 查询在取消之前可以运行的最长时间(以分钟为单位)。

  • 活跃 DML 查询 – 活跃 DML 查询的数量。DML 查询包括 SELECTCREATE TABLE AS (CTAS) 和 INSERT INTO 查询。具体配额因 Amazon 区域而异。

  • DML 查询超时 – DML 查询在取消之前可以运行的最长时间(以分钟为单位)。您可以请求将此超时时间延长至最多 240 分钟。

要请求增加限额,您可以使用 Athena 服务限额控制台。

Athena 会根据总体服务负载和传入请求的数量,通过分配资源来处理查询。您的查询可能会在运行之前临时排队。异步进程从队列中获取查询,并在资源可用时立即在物理资源上运行它们,只要您的账户配置允许。

DML 或 DDL 查询配额包括正在运行的查询和排队的查询。例如,如果您的 DML 查询配额为 25,正在运行和排队的查询总数为 26,则查询 26 将导致错误。TooManyRequestsException

注意

如果您想直接控制在 Athena 中运行的查询的并发性,则可以使用容量预留。有关更多信息,请参阅管理查询处理容量

查询字符串长度

查询字符串允许的最大长度为 262144 字节,字符串采用 UTF-8 编码。这不是一个可调节的配额。但是,您可以通过将长查询拆分为多个较小的查询来解决此限制。有关更多信息,请参阅 Amazon 知识中心中的如何增加 Athena 中的最大查询字符串长度?

工作组

使用 Athena 工作组时,请记住以下几点:

  • Athena 服务配额在账户中的所有工作组之间共享。

  • 可为您账户中的每个区域创建的工作组的最大数量为 1000。

  • 工作组中的最大预处理语句数为 1000。

  • 每个工作组的最大标签数是 50。有关更多信息,请参阅标签限制

数据库、表和分区

  • 如果您将 Athena Amazon Glue Data Catalog 与 Athena 一起使用,Amazon Glue 请参阅终端节点和表、数据库和分区的服务配额配额,例如,每个账户的最大数据库或表数。

    • 尽管 Athena 支持 Amazon Glue 查询具有 1000 万个分区的表,但是 Athena 在一次扫描中读取的分区不能超过 100 万个。

  • 如果您不使用 Amazon Glue Data Catalog,则每张表的分区数为 20,000。您可以请求提高限额

Amazon S3 存储桶

使用 Amazon S3 存储桶时,请记住以下几点:

  • Amazon S3 的默认服务配额为每个账户 100 个存储桶。

  • Athena 需要一个单独的存储桶来记录结果。

  • 您可以请求每个 Amazon 账户最多提高 1000 个 Amazon S3 存储桶的配额。

每个账户 API 调用配额

Athena API 对每个账户的 API 调用数量(不是每个查询)具有以下默认配额:

API 名称 每秒默认调用次数 容量爆增
BatchGetNamedQuery, ListNamedQueries, ListQueryExecutions 5 最多 10 个
CreateNamedQuery, DeleteNamedQuery, GetNamedQuery 5 最多 20 个
BatchGetQueryExecution 20 最多 40 个
StartQueryExecution, StopQueryExecution 20 最多 80 个
GetQueryExecution, GetQueryResults 100 最多 200 个

例如,对于 StartQueryExecution,每秒最多可以调用 20 次。此外,如果此 API 在 4 秒内未被调用,则您账户的容量暴增将累积至最多 80 次调用。在这种情况下,应用程序在突增模式下最多可以对此 API 进行 80 次调用。

如果您使用这些 API 中的任何一个,并且超过了每秒调用次数的默认配额或账户中的突发容量,Athena API 会发出类似于以下内容的错误:“ClientError“:调用操作时出现错误 ThrottlingException ():<API_name>超出速率。” 减少每秒调用次数或此账户的 API 容量暴增。

无法在 Athena Service Quotas 控制台中更改每个账户 API 调用的 Athena 限额。要申请增加 Athena API 调用的限额,请导航到 Amazon Web Services Support 服务限制提高页面,然后填写并提交表单。