

# 服务配额
<a name="service-limits"></a>

**注意**  
Service Quotas 控制台提供有关 Amazon Athena 配额的信息。对于可调整的限额，您可以使用服务限额控制台[请求增加限额](https://console.amazonaws.cn/servicequotas/home?region=us-east-1#!/services/athena/quotas)。有关与 Amazon Glue 相关的架构限制，请参阅 [Amazon Glue 端点和限额](https://docs.amazonaws.cn/general/latest/gr/glue.html)页面。有关 Amazon 服务限额的一般性信息，请参阅 *Amazon Web Services 一般参考* 中的 [Amazon 服务限额](https://docs.amazonaws.cn/general/latest/gr/aws_service_limits.html)。

## 查询
<a name="service-limits-queries"></a>

您的账户对于 Amazon Athena 具有以下与查询相关的配额。有关详细信息，请参阅 Amazon Web Services 一般参考 的 [Amazon Athena 端点和限额](https://docs.amazonaws.cn/general/latest/gr/athena.html#amazon-athena-limits)页面。
+ **活跃 DDL 查询** – 活跃 DDL 查询的数量。DDL 查询包括 `CREATE TABLE` 和 `ALTER TABLE ADD PARTITION` 查询。
+ **DDL 查询超时** – DDL 查询在取消之前可以运行的最长时间（以分钟为单位）。
+ **活跃 DML 查询** – 活跃 DML 查询的数量。DML 查询包括 `SELECT`、`CREATE TABLE AS` (CTAS) 和 `INSERT INTO` 查询。具体配额因 Amazon 区域而异。
+ **DML 查询超时** – DML 查询在取消之前可以运行的最长时间（以分钟为单位）。您可以申请延长此超时时间，但最长不得超过 240 分钟。

要请求增加限额，您可以使用 [Athena 服务限额](https://console.amazonaws.cn/servicequotas/home?region=us-east-1#!/services/athena/quotas)控制台。

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

活动 DML 查询和活动 DDL 查询配额包括正在运行的查询和排队的查询。例如，假设活动 DML 配额为 25，而正在运行和排队的查询总数为 26，则查询 26 将导致 TooManyRequestsException 错误。

**注意**  
如果您想直接控制在 Athena 中运行的查询的并发性，则可以使用容量预留。有关更多信息，请参阅 [管理查询处理容量](capacity-management.md)。

### 查询字符串长度
<a name="service-limits-query-string-length"></a>

查询字符串允许的最大长度为 262144 字节，字符串采用 UTF-8 编码。这不是一个可调节的配额。但是，您可以通过将长查询拆分为多个较小的查询来解决此限制。有关更多信息，请参阅 Amazon 知识中心中的[如何增加 Athena 中的最大查询字符串长度？](https://www.amazonaws.cn/premiumsupport/knowledge-center/athena-query-string-length/)。

## 工作组
<a name="service-limits-workgroups"></a>

使用 Athena 工作组时，请记住以下几点：
+ Athena 服务配额在账户中的所有工作组之间共享。
+ 可为您账户中的每个区域创建的工作组的最大数量为 1000。
+ 工作组中的最大预处理语句数为 1000。
+ 每个工作组的最大标签数是 50。有关更多信息，请参阅 [标签限制](tags.md#tag-restrictions)。

## 数据库、表和分区
<a name="service-limits-glue"></a>

Athena 使用 Amazon Glue Data Catalog。有关表、数据库和分区的服务配额（例如，每个帐户的数据库或表的最大数量），请参阅 [Amazon Glue 端点和配额](https://docs.amazonaws.cn/general/latest/gr/glue.html)。请注意，尽管 Athena 支持查询具有 1 千万个分区的 Amazon Glue 表，但 Athena 的单次扫描读取量最多为 1 百万个分区。

## Amazon S3 存储桶
<a name="service-limits-buckets"></a>

使用 Amazon S3 存储桶时，请记住以下几点：
+ Amazon S3 的默认服务配额为每个账户 1 万个存储桶。
+ Athena 需要一个单独的存储桶来记录结果。
+ 您可以请求将配额增加到每个 Amazon 账户最高 100 万个 Amazon S3 存储桶。

## 每个账户 API 调用配额
<a name="service-limits-api-calls"></a>

Athena API 规定了每个账户（不是每个查询）的 API 调用数默认配额。有关默认配额的完整列表，请参阅《Amazon Web Services 一般参考》指南中的 [Service quotas](https://docs.amazonaws.cn/general/latest/gr/athena.html#amazon-athena-limits) 表。

如果您使用这些 API 中的任何一个，并且超出了每秒调用次数的默认配额或您账户中的容量暴增，则 Athena API 会发出类似于以下内容的错误：“ClientError: An error occurred (ThrottlingException) when calling the *<API\$1name>* operation: Rate exceeded. (ClientError：调用操作时发生错误 (ThrottlingException)：超出速率。)” 减少每秒调用次数或此账户的 API 容量暴增。

可以在 [Athena 服务配额控制台](https://console.amazonaws.cn/servicequotas/home?region=us-east-1#!/services/athena/quotas)中更改 Athena 的每账户 API 调用配额。