本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
Amazon Athena 中的使用者定義函數 (UDF) 可讓您建立自訂函數,以處理記錄或記錄群組。UDF 接受參數、執行工作,然後傳回結果。
若要在 Athena 中使用 UDF,請在 SQL 查詢中的 SELECT
陳述式之前撰寫 USING EXTERNAL FUNCTION
子句。SELECT
陳述式參考 UDF,並定義在執行查詢時傳遞至 UDF 的變數。SQL 查詢呼叫 UDF 時使用 Java 執行時間叫用 Lambda 函數。UDF 在 Lambda 函數內被定義為 Java 部署套件中的方法。在同一個 Java 部署套件中,一個 Lambda 函數可以定義多個 UDF。您也可以在 USING EXTERNAL FUNCTION
子句中指定 Lambda 函數的名稱。
部署 Athena UDF 的 Lambda 函數時有兩種選項。您可以直接使用 Lambda,也可以使用 AWS Serverless Application Repository部署函數。若要尋找 UDFs的現有 Lambda 函數,您可以搜尋公有 AWS Serverless Application Repository 或私有儲存庫,然後部署至 Lambda。您也可以建立或修改 Java 原始程式碼、將其封裝成 JAR 檔案,然後使用 Lambda 或 AWS Serverless Application Repository部署此檔案。如需 Java 原始程式碼和套件範例來協助您開始使用,請參閱使用 Lambda 建立和部署 UDF。如需有關 Lambda 的詳細資訊,請參閱《AWS Lambda 開發人員指南》。如需詳細資訊 AWS Serverless Application Repository,請參閱 AWS Serverless Application Repository 開發人員指南。
如需使用 UDFs搭配 Athena 來翻譯和分析文字的範例,請參閱 AWS Machine Learning 部落格文章 使用 SQL 函數搭配 Amazon Athena、Amazon Translate 和 Amazon Comprehend 翻譯和分析文字
如需使用 UDF 在 Amazon Athena 擴充地理空間查詢的範例,請參閱使用 AWS 大數據部落格中的使用 UDF 和 AWS Lambda在 Amazon Athena 中擴充地理空間查詢