【问题标题】:Need to connect snowflake table from JAVA UDF需要从 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 查询。

标签: snowflake-cloud-data-platform


【解决方案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 执行查询的能力。

【讨论】:

猜你喜欢
  • 2021-07-22
  • 2021-10-25
  • 2018-10-08
  • 1970-01-01
  • 1970-01-01
  • 2023-03-22
  • 2023-04-09
  • 2019-01-23
  • 2018-10-20
相关资源
最近更新 更多