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 来部署。要查找 UDF 的现有 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 开发人员指南》。
有关使用 UDF 与 Athena 一起翻译和分析文本的示例,请参阅 AWS Machine Learning 博客文章:使用 Amazon Athena、Amazon Translate 和 Amazon Comprehend 的 SQL 函数翻译和分析文本
有关在 Amazon Athena 中使用 UDF 扩展地理空间查询的示例,请参阅 AWS 大数据博客中的使用 UDF 和 AWS Lambda 在 Amazon Athena 中扩展地理空间查询