Empacotamento do código do manipulador Scala com sbt¶
Você pode usar a ferramenta de compilação Scala (sbt) para compilar e empacotar seu código como um assembly JAR. Você pode usar o plugin sbt-assembly para criar um arquivo JAR contendo todas as dependências.
Depois de ter um arquivo JAR, você pode carregar o arquivo em um estágio do Snowflake e, em seguida, fazer referência a ele no parâmetro IMPORTS na instrução CREATE FUNCTION ou CREATE PROCEDURE que você usa para criar a função ou o procedimento. Para obter mais informações sobre o upload de arquivos JAR, consulte Disponibilização das dependências para seus códigos. Para obter mais informações sobre como escolher se o código deve estar inline ou em um estágio, consulte Como manter o código do manipulador inline ou em um estágio.
Para criar um arquivo assembly JAR com o código do manipulador, siga as etapas abaixo.
No diretório que contém seu arquivo
build.sbt
, no subdiretórioproject/
, crie um arquivo chamadoplugins.sbt
.Por exemplo, se o diretório contendo seu arquivo
build.sbt
forhello-snowpark/
, crie o arquivohello-snowpark/project/plugins.sbt
:hello-snowpark/ |-- build.sbt |-- project/ |-- plugins.sbt
No arquivo
plugins.sbt
, adicione a seguinte linha:addSbtPlugin("com.eed3si9n" % "sbt-assembly" % "1.1.0")
Isso adiciona o plugin sbt-assembly ao seu projeto.
Se seu projeto requer várias versões da mesma biblioteca (por exemplo, se o seu projeto depende de duas bibliotecas que exigem versões diferentes de uma terceira biblioteca), defina uma estratégia de fusão em seu arquivo
build.sbt
para resolver as dependências. Consulte Estratégia de fusão para detalhes.Se o seu projeto exigir a biblioteca Snowpark, faça referência a ela em seu arquivo
build.sbt
comlibraryDependencies
, conforme mostrado abaixo. Certifique-se de usar pelo menos a versão mínima necessária.Como a biblioteca do Snowpark está incluída no Snowflake, exclua-a do arquivo JAR especificando que a dependência é
"provided"
.libraryDependencies += "com.snowflake" % "snowpark" % "1.1.0" % "provided"
Mude para o diretório do seu projeto (por exemplo,
hello-snowpark
) e execute o seguinte comando:sbt assembly
Nota
Se você encontrar o erro
Not a valid command: assembly
,Not a valid project ID: assembly
ouNot a valid key: assembly
, certifique-se de que o arquivoplugins.sbt
esteja no subdiretório chamadoproject/
(como mencionado na etapa 1).Esse comando cria um arquivo JAR no seguinte local:
target/scala-<version>/<project-name>-assembly-1.0.jar