本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
Amazon Athena SQL 查詢的注意事項和限制
在 Athena 中執行查詢時,請記住下列考量事項與限制:
-
預存程序 – 不支援預存程序。
-
分割區數目上限 — 您可以使用
CREATE TABLE AS SELECT
(CTAS) 陳述式建立的最大分割區數目為 100。如需詳細資訊,請參閱 CREATETABLEAS。如需因應措施,請參閱使用CTAS並INSERTINTO解決 100 個分區限制。 -
不支援的陳述式 — 不支援的陳述式包括下列 如需 Athena 中不受支援DDL陳述式的完整清單,請參閱不支援的 DDL。
-
不支援
CREATE TABLE LIKE
。 -
DESCRIBE INPUT
並且DESCRIBE OUTPUT
不受支援。 -
MERGE
陳述式僅支援交易型資料表格式。如需詳細資訊,請參閱 合併為。 -
不支援
UPDATE
陳述式。 -
不支援
DELETE FROM
。
-
-
Trino 和 Presto 連接器 – 不支援 Trino
和 Presto 連接器。使用 Amazon Athena 聯合查詢來連接資料來源。如需詳細資訊,請參閱 使用 Amazon Athena 聯合查詢。 -
具有多個分割區的資料表逾時 – 在查詢具有數千個分割區的資料表時,Athena 可能會逾時。當資料表有許多非類型
string
的分割區時,就會發生這種情況。當您使用類型string
時,Athena 會在中繼存放區層級剔除分割區。不過,在您使用其他資料類型時,Athena 會剔除伺服器端的分割區。您擁有的分割區越多,此程序所需的時間越長,您的查詢也越有可能逾時。如要解決此問題,請將您的分割區類型設定為string
,以便 Athena 在中繼存放區層級剔除分割區。這可以減少額外負荷,並防止查詢逾時。 -
S3 Glacier 支援 – 如需有關查詢還原的 Amazon S3 Glacier 物件的資訊,請參閱 查詢還原的 Amazon S3 冰川物件。
-
檔案視為隱藏 – Athena 會將以底線 (
_
) 或點 (.
) 開頭的來源檔案視為隱藏。如果要解決這個限制,請將檔案重新命名。 -
資料行或資料欄大小限制 – 單一資料行或其資料欄的大小不可超過 32 MB。例如,當CSV或JSON檔案中的資料列包含 300 MB 的單一資料行時,就可以超過此限制。超過此限制時也會產生錯誤訊息
Line too long in text file
(文字檔案中的資料行過長)。若要解決此限制,請確定任何資料列中資料欄的資料總和小於 32 MB。 -
LIMIT子句最大值 — 可以為
LIMIT
子句指定的最大行數為9223372036854775807. 使用時
ORDER BY
,LIMIT子句所支援的資料列數目上限為 2147483647。超過此限制會導致錯誤訊息NOT_SUPPORTED: ORDER BY LIMIT > 2147483647
不受支援。 -
資訊_schema — 如果您有少量到中等的中繼資料,查詢
information_schema
效能最高。 AWS Glue 如果您有大量中繼資料,則可能會出現錯誤。如需有關查詢資料information_schema
庫中 AWS Glue 繼資料的資訊,請參閱查詢 AWS Glue Data Catalog。 -
陣列初始化 – 由於 Java 中的限制,無法在 Athena 中初始化具有超過 254 個引數的陣列。
-
隱藏的中繼資料欄 – 檢視不支援 Hive 或 Iceberg 隱藏的中繼資料欄
$bucket
、$file_modified_time
、$file_size
和$partition
。如需有關在 Athena 中使用$path
中繼資料欄的資訊,請參閱 在 Amazon S3 中取得來源資料的檔案位置 。
如需查詢字串長度上限、查詢逾時配額以及使用中查DML詢數目配額的相關資訊,請參閱Service Quotas。