Scala UDF 처리기 프로젝트 및 패키징

잘 구성된 프로젝트 계층 구조와 널리 사용되는 빌드 도구를 사용하여 처리기 코드 프로젝트를 더 쉽게 유지 관리할 수 있습니다. 이러한 프로젝트는 처리기 코드를 Snowflake 스테이지에 복사한 다음 함수와 프로시저에서 참조하려는 경우에 유용합니다.

처리기 코드를 빌드하고 패키징하려면 sbt, Maven, Gradle과 같이 널리 사용되는 도구를 사용할 수 있습니다. 자세한 내용은 다음 항목을 참조하십시오.

처리기 코드를 패키징한 후에는 코드에 종속성을 사용할 수 있도록 만들기 에 설명된 대로 스테이지에 코드를 추가할 수 있습니다.

처리기를 인라인으로 또는 스테이지에 유지할지 여부를 선택하는 방법에 대한 자세한 내용은 처리기 코드를 인라인 또는 스테이지에 유지하기 섹션을 참조하십시오.

파일 정리하기

처리기를 JAR 파일에 패키징하여 Snowflake 스테이지에 배치하려는 경우 Snowflake 처리기 코드를 구성하는 프로젝트 계층 구조를 사용하는 것이 유용할 수 있습니다. 이 섹션에서는 파일 정리를 위한 계층 구조를 제안합니다.

이와 같은 프로젝트 계층 구조를 만드는 데 사용할 수 있는 GitHub 템플릿에 대해서는 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

다음 표에 계층 구조의 섹션에 대해 설명되어 있습니다.

디렉터리/파일

설명

project 디렉터리

코드의 빌드와 패키징을 안내하기 위해 sbt에서 사용하는 파일을 포함합니다.

  • plugins.sbt 파일은 sbt에서 사용하는 플러그인을 지정합니다. Snowflake에서 사용할 코드를 빌드하려면 처리기의 종속성과 함께 JAR을 만드는 데 도움이 되는 플러그인을 추가하십시오. 자세한 내용은 sbt로 Scala 처리기 코드 패키징하기 섹션을 참조하십시오.

src / main / scala / org / example 디렉터리

처리기 코드 원본 파일을 포함합니다.

  • function 디렉터리를 사용하여 사용자 정의 함수(UDF)에 대한 처리기 원본을 보관합니다.

  • procedure 디렉터리를 사용하여 저장 프로시저의 처리기 원본을 보관합니다.

  • utils 디렉터리를 사용하여 둘 다에 필요한 처리기 원본을 보관합니다.

src / test / scala / org / example 디렉터리

처리기 테스트 원본 파일을 포함합니다.

  • function 디렉터리를 사용하여 사용자 정의 함수(UDF)에 대한 테스트를 보관합니다.

  • procedure 디렉터리를 사용하여 저장 프로시저에 대한 테스트를 보관합니다.

build.sbt 파일

빌드된 출력의 이름과 버전, 종속성 등을 포함하여 sbt에서 사용하는 빌드 정의를 지정합니다. 자세한 내용은 sbt로 Scala 처리기 코드 패키징하기 섹션을 참조하십시오.

pom.xml 파일

Maven에서 사용하는 빌드 정의를 지정합니다. 자세한 내용은 Maven으로 Java 또는 Scala 처리기 코드 패키징하기 섹션을 참조하십시오.