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ハンドラーコードのパッケージ化 をご参照ください。 |