需要从 JAVA UDF 连接雪花表

Posted

技术标签:

【中文标题】需要从 JAVA UDF 连接雪花表【英文标题】:Need to connect snowflake table from JAVA UDF 【发布时间】:2021-08-06 11:58:18 【问题描述】:

我的要求是从雪花 JAVA UDF 中查询一些雪花表。 我可以使用 jdbc Snowflake 连接器连接计划 java 程序,当涉及到雪花 JAVA UDF 时,我不确定如何从 UDF 读取表格。因为 UDF 本身在雪花环境中运行,所以不确定 jdbc 是如何工作的。

还是直接查询表。

请提出建议。

谢谢, 库马尔

【问题讨论】:

我不明白“从 java udf 查询雪花”。为什么要通过数据库上的 UDF 函数从数据库中查询数据,而不是仅使用 SELECT 语句查询数据? 我的 UDF 需要一些表中的数据。基于此,我需要构建 UDF 输出。我使用 java UDF 读取了一个 word 文档 toc items ,根据版本,TOC item order 在另一个表中。第一次调用 UDF 获取输入文件名,UDF 将处理 word 文档。在 UDF 中,我需要比较我的 TOC 项目表,我需要从 UDF 查询。 【参考方案1】:

Java UDF 必须是自包含的,不能调用外部服务; see the documentation 了解更多详情。但是,您有两种选择:

编写一个从表中读取数据的查询,并将输入行传递给执行您需要的任何处理的 UDF。处理需要自包含,但如果需要初始化,您可以read files from stages。如果处理需要,您可以在 UDF 中使用 JDBC API,但您将无法使用它们与远程服务(Snowflake 或其他)通信。 使用Snowpark API,它使您能够使用DataFrame API 编写Scala 代码。操作转化为查询,Snowpark 也将一些计算作为 Java UDF 下推。 (长期)等待 Java 存储过程的可用性,后者在 Snowflake 峰会上宣布将在未来推出,并将提供使用 JDBC API 对 Snowflake 执行查询的能力。

【讨论】:

感谢您的帮助。 你能帮我解决这个问题吗? ***.com/questions/68928021/…

以上是关于需要从 JAVA UDF 连接雪花表的主要内容,如果未能解决你的问题,请参考以下文章

雪花 SQL udf 的输入列表

有没有啥方法可以在雪花中使用 UDF 而不是扁平化?

雪花中的 JavaScript UDF

历史数据加载的雪花任务,时间限制

Hive UDF 性能太慢

我需要创建一个 pyspark UDF,它通过比较从查询中输出一个表