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
下表描述了层次结构的各个部分。
目录/文件 |
描述 |
---|---|
|
包含 sbt 用于指导代码构建和打包的文件。
|
|
包含处理程序代码源文件。
|
|
包含处理程序测试源文件。
|
|
指定 sbt 使用的构建定义,包括构建输出的名称和版本、依赖关系等。有关更多信息,请参阅 使用 sbt 打包 Scala 处理程序代码。 |
|
指定 Maven 使用的构建定义。有关更多信息,请参阅 使用 Maven 打包 Java 或 Scala 处理程序代码。 |