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
Copy

A tabela a seguir descreve as seções da hierarquia.

Diretório/arquivo

Descrição

Diretório project

Contém arquivos usados pelo sbt para orientar a compilação e o empacotamento do código.

  • plugins.sbt especifica os plugins usados pelo sbt. Para criar código para uso no Snowflake, adicione um plugin para ajudar a criar um JAR com as dependências do seu manipulador. Para obter mais informações, consulte Empacotamento do código do manipulador Scala com sbt.

Diretório src / main / scala / org / example

Contém arquivos de código-fonte do manipulador.

  • Use o diretório function para manter o código-fonte do manipulador para funções definidas pelo usuário (UDFs).

  • Use o diretório procedure para manter a origem do manipulador para procedimentos armazenados.

  • Use o diretório utils para manter o código-fonte do manipulador necessário para ambos.

Diretório src / test / scala / org / example

Contém arquivos de origem do teste do manipulador.

  • Use o diretório function para manter testes para funções definidas pelo usuário (UDFs).

  • Use o diretório procedure para manter os testes para procedimentos armazenados.

Arquivo build.sbt

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 pom.xml

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.