使用用户定义函数进行查询 - Amazon Athena
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

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

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 部署函数,也可以使用 Amazon Serverless Application Repository 来部署。要查找 UDF 的现有 Lambda 函数,您可以搜索公共 Amazon Serverless Application Repository 或私有存储库,然后部署到 Lambda。您还可以创建或修改 Java 源代码,将其打包到 JAR 文件中,然后使用 Lambda 或 Amazon Serverless Application Repository 来部署它。有关能够帮助您开始使用的示例 Java 源代码和软件包,请参阅 使用 Lambda 创建和部署 UDF。有关 Lambda 的更多信息,请参阅《Amazon Lambda 开发人员指南》。有关 Amazon Serverless Application Repository 的更多信息,请参阅《Amazon Serverless Application Repository 开发人员指南》。

有关使用 UDF 与 Athena 一起翻译和分析文本的示例,请参阅 Amazon Machine Learning 博客文章《将 SQL 函数与 Amazon Athena、Amazon Translate 和 Amazon Comprehend 结合起来翻译和分析文本》。

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