

# Amazon Athena 中 SQL 查询的注意事项和限制
<a name="other-notable-limitations"></a>

在 Athena 中运行查询时，请记住以下注意事项和限制：
+ **存储过程** – 不支持存储过程。
+ **最大分区数** – 在 `CREATE TABLE AS SELECT` (CTAS)语句中可以创建的最大分区数为 100。有关信息，请参阅 [CREATE TABLE AS](create-table-as.md)。有关解决方法，请参阅[使用 CTAS 和 INSERT INTO 绕过 100 分区限制](ctas-insert-into.md)。
+ **不支持的语句** – 不支持的语句包括以下项：有关 Athena 中不支持的 DDL 语句的完整列表，请参阅 [不支持的 DDL](unsupported-ddl.md)。
  + 不支持 `CREATE TABLE LIKE`。
  + 不支持 `DESCRIBE INPUT` 和 `DESCRIBE OUTPUT`。
  + `MERGE` 语句仅支持事务表格式。有关更多信息，请参阅 [MERGE INTO](merge-into-statement.md)。
  + 不支持 `UPDATE` 语句。
  + 不支持 `DELETE FROM`。
+ **Trino 和 Presto 连接器** – 不支持 [Trino](https://trino.io/docs/current/connector.html) 和 [Presto](https://prestodb.io/docs/current/connector.html) 连接器。使用 Amazon Athena 联合查询连接数据来源。有关更多信息，请参阅 [使用 Amazon Athena 联合查询](federated-queries.md)。
+ **对于具有多个分区的表超时** – 在查询具有数千个分区的表时，Athena 可能会超时。当表具有许多不属于类型 `string` 的分区时，可能会发生这种情况。使用类型 `string` 时，Athena 在元存储级别修剪分区。但是，当您使用其他数据类型时，Athena 会在服务器端修剪分区。您拥有的分区越多，此过程所花的时间越长，并且您的查询越可能超时。要解决此问题，请将您的分区类型设置为 `string`，以便 Athena 在元存储级别修剪分区。这可以减少开销并防止查询超时。
+ **Amazon Glacier** 支持 - 有关查询已还原 Amazon Glacier 对象的信息，请参阅[查询还原的 Amazon Glacier 对象](querying-glacier.md)。
+ **将文件视为隐藏** – Athena 将以下划线(`_`)或句点(`.`)开头的源文件视为隐藏文件。要解决此限制，请重命名文件。
+ **行或列大小限制**：单个行或其列的大小不能超过 32 MB。有时可能会超出此限制，例如当某行包含单个大小达到 35 MB 的列时。这是该服务的一项硬性限制，无法更改。
+ **文本文件中的最大行长度**：文本文件中单行的大小上限为 200 MB。超过此限制可能产生错误消息 TextLineLengthLimitExceededException: Too many bytes before newline。要避免此限制引起的问题，请确保文本文件中没有任何行的大小超过 200 MB。
+ **LIMIT 子句最大值** – 可以为 `LIMIT` 子句指定的最大行数为 

  9223372036854775807。使用 `ORDER BY` 时，LIMIT 子句支持的最大行数为 2147483647。超过此限制会导致错误消息 NOT\$1SUPPORTED: ORDER BY LIMIT > 2147483647 is not supported（不支持：不支持大于 2147483647 限制的指令）。
+ **information\$1schema** – 如果您的 AWS Glue 元数据较少或中等，则查询 `information_schema` 的性能会最佳。如果您有大量的元数据，则可能会出现错误。有关查询 `information_schema` 数据库的 AWS Glue 元数据的信息，请参阅[查询 AWS Glue Data Catalog](querying-glue-catalog.md)。
+  **数组初始化** – 由于 Java 中的限制，无法在 Athena 中初始化具有超过 254 个参数的数组。
+ **隐藏的元数据列** - 视图不支持 Hive 或 Iceberg 隐藏的元数据列 `$bucket`、`$file_modified_time`、`$file_size` 和 `$partition`。有关在 Athena 中使用 `$path` 元数据列的信息，请参阅 [获取 Amazon S3 中源数据的文件位置](select.md#select-path)。

有关最大查询字符串长度、查询超时限额以及活动 DML 查询数限额的信息，请参阅 [服务配额](service-limits.md)。