Amazon Athena SQL 查詢的注意事項和限制 - Amazon Athena

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

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 連接器 – 不支援 TrinoPresto 連接器。使用 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