Scala-UDF-Handler – Projekt und Paketerstellung¶
Durch eine gut organisierte Projekthierarchie und gängige Build-Tools können Sie die Wartung von Handler-Code-Projekten erleichtern. Build-Tools sind nützlich, wenn Sie beabsichtigen, Handler-Code in einen Snowflake-Stagingbereich zu kopieren, um dann von Funktionen und Prozeduren aus auf ihn zu verweisen.
Für Build und Paketerstellung von Handler-Code können Sie gängige Tools wie sbt, Maven und Gradle verwenden. Weitere Informationen dazu finden Sie unter folgenden Themen:
Sobald Sie den Handler-Code gepackt haben, können Sie ihn wie unter Abhängigkeiten für Code zur Verfügung stellen beschrieben zu einem Stagingbereich hinzufügen.
Weitere Informationen zur Entscheidung, ob der Handler inline oder in einem Stagingbereich aufbewahrt werden soll, finden Sie unter Speichern von Handler-Code inline oder in einem Stagingbereich.
Organisieren Ihrer Dateien¶
Wenn Sie beabsichtigen, Ihren Handler in eine JAR-Datei zu packen und in einem Snowflake-Stagingbereich bereitzustellen, kann die Verwendung einer Projekthierarchie helfen, den Snowflake-Handler-Code zu organisieren. In diesem Abschnitt wird eine Hierarchie für die Organisation der Dateien vorgeschlagen.
Eine GitHub-Vorlage, mit der Sie eine Projekthierarchie wie diese erstellen können, finden Sie im Snowflake-Labs GitHub Repository.
SnowflakeProject
|-- project
| |-- plugins.sbt
|-- src
| |-- main / scala / org / example
| | |-- function
| | | |-- FunctionHandler.scala
| | |-- procedure
| | |-- utils
| |-- test / scala / org / example
| | |-- function
| | |-- procedure
|-- build.sbt
|-- pom.xml
In der folgenden Tabelle werden die Abschnitte der Hierarchie beschrieben.
Verzeichnis/Datei |
Beschreibung |
---|---|
|
Enthält Dateien, die von sbt verwendet werden, um Build- und Paketerstellung von Code zu steuern.
|
|
Enthält die Quelldateien des Handler-Codes.
|
|
Enthält Quelldateien zum Handler-Test.
|
|
Gibt die von sbt verwendete Build-Definition an, einschließlich Name und Version der erstellten Ausgabe, Abhängigkeiten usw. Weitere Informationen dazu finden Sie unter Packen von Scala-Handler-Code mit sbt. |
|
Gibt die von Maven verwendete Build-Definition an. Weitere Informationen dazu finden Sie unter Packen von Java- oder Scala-Handler-Code mit Maven. |