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.

  1. No diretório que contém seu arquivo build.sbt, no subdiretório project/, crie um arquivo chamado plugins.sbt.

    Por exemplo, se o diretório contendo seu arquivo build.sbt for hello-snowpark/, crie o arquivo hello-snowpark/project/plugins.sbt:

    hello-snowpark/
    |-- build.sbt
        |-- project/
            |-- plugins.sbt
    
    Copy
  2. No arquivo plugins.sbt, adicione a seguinte linha:

    addSbtPlugin("com.eed3si9n" % "sbt-assembly" % "1.1.0")
    
    Copy

    Isso adiciona o plugin sbt-assembly ao seu projeto.

  3. 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.

  4. Se o seu projeto exigir a biblioteca Snowpark, faça referência a ela em seu arquivo build.sbt com libraryDependencies, 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"
    
    Copy
  5. Mude para o diretório do seu projeto (por exemplo, hello-snowpark) e execute o seguinte comando:

    sbt assembly
    
    Copy

    Nota

    Se você encontrar o erro Not a valid command: assembly, Not a valid project ID: assembly ou Not a valid key: assembly, certifique-se de que o arquivo plugins.sbt esteja no subdiretório chamado project/ (como mencionado na etapa 1).

    Esse comando cria um arquivo JAR no seguinte local:

    target/scala-<version>/<project-name>-assembly-1.0.jar
    
    Copy