Scala UDF 处理程序项目和打包

通过井井有条的项目层次结构和热门的构建工具,可以使处理程序代码项目更易于维护。当您打算将处理程序代码复制到 Snowflake 暂存区,然后从函数和过程中引用它时,这些很有用。

要构建和包处理程序代码,可以使用热门工具,例如 sbt、Maven 和 Gradle。有关更多信息,请参阅以下主题:

打包处理程序代码后,您可以按照 为代码提供依赖项 中的描述,将其添加到暂存区中。

如需进一步了解是选择将处理程序内联,还是储在暂存区中,请参阅 将处理程序代码保持内联或保留在暂存区

整理文件

如果您打算将处理程序包成 JAR 文件并将其放在 Snowflake 暂存区中,您可能会发现使用项目层次结构来整理 Snowflake 处理程序代码很有用。本节建议采用层次结构来整理文件。

有关创建类似项目层次结构的 GitHub 模板,请参阅 Snowflake-Labs GitHub 存储库 (https://github.com/Snowflake-Labs/snowpark-scala-template/tree/v1.0.0)。

SnowflakeProject
|-- project
|   |-- plugins.sbt
|-- src
|   |-- main / scala / org / example
|   |   |-- function
|   |   |   |-- FunctionHandler.scala
|   |   |-- procedure
|   |   |-- utils
|   |-- test / scala / org / example
|   |   |-- function
|   |   |-- procedure
|-- build.sbt
|-- pom.xml
Copy

下表描述了层次结构的各个部分。

目录/文件

描述

project 目录

包含 sbt 用于指导代码构建和打包的文件。

  • plugins.sbt 文件指定 sbt 使用的插件。要构建供 Snowflake 使用的代码,请添加一个插件,以帮助创建包含处理程序依赖关系的 JAR。有关更多信息,请参阅 使用 sbt 打包 Scala 处理程序代码

src / main / scala / org / example 目录

包含处理程序代码源文件。

  • 使用 function 目录保存用户定义函数 (UDFs) 的处理程序源文件。

  • 使用 procedure 目录保存存储过程的处理程序源文件。

  • 使用 utils 目录保存两者都需要的处理程序源文件。

src / test / scala / org / example 目录

包含处理程序测试源文件。

  • 使用 function 目录保存用户定义函数 (UDFs) 的测试。

  • 使用 procedure 目录保存存储过程的测试。

build.sbt 文件

指定 sbt 使用的构建定义,包括构建输出的名称和版本、依赖关系等。有关更多信息,请参阅 使用 sbt 打包 Scala 处理程序代码

pom.xml 文件

指定 Maven 使用的构建定义。有关更多信息,请参阅 使用 Maven 打包 Java 或 Scala 处理程序代码

语言: 中文