sbt로 Scala 처리기 코드 패키징하기

Scala 빌드 도구(sbt)를 사용하여 코드를 어셈블리 JAR로 빌드하고 패키징할 수 있습니다. sbt-assembly 플러그인 을 사용하면 모든 종속성을 포함하는 JAR 파일을 만들 수 있습니다.

JAR 파일이 있으면 이를 Snowflake 스테이지에 업로드한 다음, 함수나 프로시저를 만드는 데 사용하는 CREATE FUNCTION 또는 CREATE PROCEDURE 문의 IMPORTS 매개 변수에서 해당 파일을 참조할 수 있습니다. JAR 파일 업로드에 대한 자세한 내용은 코드에 종속성을 사용할 수 있도록 만들기 섹션을 참조하십시오. 코드를 인라인 상태로 둘지 스테이지에 둘지 선택하는 방법에 대한 자세한 내용은 처리기 코드를 인라인 또는 스테이지에 유지하기 섹션을 참조하십시오.

처리기 코드로 어셈블리 JAR 파일을 만들려면 다음 단계에 따르십시오.

  1. build.sbt 파일이 포함된 디렉터리에서 project/ 하위 디렉터리에 plugins.sbt 라는 파일을 만듭니다.

    예를 들어 build.sbt 파일이 포함된 디렉터리가 hello-snowpark/ 인 경우 hello-snowpark/project/plugins.sbt 파일을 만듭니다.

    hello-snowpark/
    |-- build.sbt
        |-- project/
            |-- plugins.sbt
    
    Copy
  2. plugins.sbt 파일에서 다음 줄을 추가합니다.

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

    그러면 sbt-assembly 플러그인 이 프로젝트에 추가됩니다.

  3. 동일한 라이브러리의 여러 버전이 프로젝트에 필요한 경우(예: 프로젝트가 세 번째 라이브러리의 다른 버전을 필요로 하는 두 라이브러리에 의존하는 경우) build.sbt 파일에서 병합 전략을 정의하여 종속성을 해결합니다. 자세한 내용은 병합 전략 을 참조하십시오.

  4. 프로젝트에 Snowpark 라이브러리가 필요한 경우 아래와 같이 build.sbt 파일에서 libraryDependencies 로 참조하십시오. 최소한 필수 최소 버전 을 사용해야 합니다.

    Snowpark 라이브러리는 Snowflake에 포함되어 있으므로 종속성이 "provided" 임을 지정하여 JAR 파일에서 제외합니다.

    libraryDependencies += "com.snowflake" % "snowpark" % "1.1.0" % "provided"
    
    Copy
  5. 프로젝트의 디렉터리(예: hello-snowpark)로 변경하고 다음 명령을 실행합니다.

    sbt assembly
    
    Copy

    참고

    Not a valid command: assembly, Not a valid project ID: assembly 또는 Not a valid key: assembly 오류가 발생하는 경우 plugins.sbt 파일이 project/ 라는 하위 디렉터리(1단계에서 언급됨)에 있는지 확인하십시오.

    이 명령은 다음 위치에 JAR 파일을 만듭니다.

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