考量與限制 - Amazon Athena

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

考量與限制

當您在 Athena 中使用使用者定義函數 (UDFs) 時,請考慮下列幾點。

  • 內建 Athena 函數 – Athena 中內建的函數專為高效能而設計。我們建議您盡可能使用內UDFs建函數。如需內建函數的詳細資訊,請參閱Amazon Athena 中的函數

  • UDFs僅限純量 — Athena 僅支援純量UDFs,標量一次處理一個資料列並傳回單一資料行值。Athena 每次叫用 Lambda 時,UDF都會傳遞一批可能 parallel 的資料列。在設計UDFs和查詢時,請注意此處理對網路流量的潛在影響。

  • UDF處理常式函數使用縮寫格式 — 為UDF函數使用縮寫格式 (非完整格式) (例如,package.Class而非完整格式)。package.Class::method

  • UDF方法必須為小寫 — UDF 方法必須為小寫;不允許駱駝大小寫。

  • UDF方法需要參數 — UDF 方法必須至少有一個輸入參數。嘗試叫用沒有輸入參數的UDF定義會導致執行階段例外狀況。UDFs旨在針對數據記錄執行功能,但沒有參數UDF不接受數據,因此會發生異常。

  • Java 執行階段支援 — 目前,Athena UDFs 支援 Java 8 和 Java 11 執行階段的 Lambda 執行階段。如需詳細資訊,請參閱《AWS Lambda 開發人員指南》中的使用 Java 建立 Lambda 函數

  • IAM權限 — 若要在 Athena 中執行並建立UDF查詢陳述式,除了 Athena 函式之外,還必須允許執行查詢的IAM主體執行動作。如需詳細資訊,請參閱允許 Amazon Athena 使用者定義函數 (UDF) 的 IAM 許可政策範例

  • 配額 — Lambda 配額適用於UDFs. 如需詳細資訊,請參閱《AWS Lambda 開發人員指南》中的 Lambda 配額

  • 列層級濾波 — 不支援 Lake Formation 列層級濾波。UDFs

  • 檢視 — 您無法搭配使用檢視UDFs。

  • 已知問題 — 如需已知問題的大部分 up-to-date清單,請參閱的 awslabs/ aws-athena-query-federation 一節中的限制和問題。 GitHub