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
다음 표에 계층 구조의 섹션에 대해 설명되어 있습니다.
디렉터리/파일 |
설명 |
---|---|
|
코드의 빌드와 패키징을 안내하기 위해 sbt에서 사용하는 파일을 포함합니다.
|
|
처리기 코드 원본 파일을 포함합니다.
|
|
처리기 테스트 원본 파일을 포함합니다.
|
|
빌드된 출력의 이름과 버전, 종속성 등을 포함하여 sbt에서 사용하는 빌드 정의를 지정합니다. 자세한 내용은 sbt로 Scala 처리기 코드 패키징하기 섹션을 참조하십시오. |
|
Maven에서 사용하는 빌드 정의를 지정합니다. 자세한 내용은 Maven으로 Java 또는 Scala 처리기 코드 패키징하기 섹션을 참조하십시오. |