Projeto e empacotamento do manipulador da UDF de Scala¶
Você pode facilitar a manutenção de projetos de código de manipulador usando uma hierarquia de projeto bem organizada e ferramentas de compilação populares. Eles são úteis quando você pretende copiar o código do manipulador para um estágio do Snowflake e, em seguida, fazer referência a ele a partir de funções e procedimentos.
Para criar e empacotar o código do manipulador, você pode usar ferramentas populares, como sbt, Maven e Gradle. Para obter mais informações, consulte os seguintes tópicos:
Depois de empacotar o código do manipulador, você pode adicioná-lo a um estágio, conforme descrito em Disponibilização das dependências para seus códigos.
Para obter mais informações sobre a escolha de manter o manipulador inline ou em um estágio, consulte Como manter o código do manipulador inline ou em um estágio.
Organização de seus arquivos¶
Se você pretende empacotar seu manipulador em um arquivo JAR e colocá-lo em um estágio do Snowflake, talvez seja útil usar uma hierarquia de projeto que organize o código do manipulador do Snowflake. Esta seção sugere uma hierarquia para organizar arquivos.
Para obter um modelo GitHub que você pode usar para criar uma hierarquia de projeto como esta, consulte o repositório Snowflake-Labs GitHub.
SnowflakeProject
|-- project
| |-- plugins.sbt
|-- src
| |-- main / scala / org / example
| | |-- function
| | | |-- FunctionHandler.scala
| | |-- procedure
| | |-- utils
| |-- test / scala / org / example
| | |-- function
| | |-- procedure
|-- build.sbt
|-- pom.xml
A tabela a seguir descreve as seções da hierarquia.
Diretório/arquivo |
Descrição |
---|---|
Diretório |
Contém arquivos usados pelo sbt para orientar a compilação e o empacotamento do código.
|
Diretório |
Contém arquivos de código-fonte do manipulador.
|
Diretório |
Contém arquivos de origem do teste do manipulador.
|
Arquivo |
Especifica a definição de compilação usada pelo sbt, incluindo o nome e a versão da saída compilada, as dependências e assim por diante. Para obter mais informações, consulte Empacotamento do código do manipulador Scala com sbt. |
Arquivo |
Especifica a definição de compilação usada pelo Maven. Para obter mais informações, consulte Empacotamento do código do manipulador Java ou Scala com Maven. |