使用用户定义函数进行查询 - Amazon Athena

使用用户定义函数进行查询

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 函数翻译和分析文本,或观看 video

有关在 Amazon Athena 中使用 UDF 扩展地理空间查询的示例,请参阅 AWS 大数据博客中的使用 UDF 和 AWS Lambda 在 Amazon Athena 中扩展地理空间查询