SnowflakeでGitを使う例¶
このトピックの例では、Snowflake アプリケーションの開発時にリモートの Git リポジトリのファイルを使用する方法と、Git リポジトリのクローンで SQL スクリプトを実行する方法について説明します。
Git リポジトリのクローンを操作するその他の方法については、以下を参照ください。
Gitリポジトリファイルをストアドプロシージャのハンドラーとして使用します。¶
Snowflake とリモートの Git リポジトリとの統合をセットアップ した後は、リポジトリにあるファイルをストアドプロシージャや UDFs のハンドラーコードとして使用することができます。 ステージング・ハンドラー と同様に、ハンドラー関数名には、それを含むクラス名またはモジュール名を指定しなければならないことに注意してください。
この例では、リポジトリのPythonハンドラーコードをストアドプロシージャで使用する方法を説明します。
この例で必要なコード¶
この例のハンドラーは、次のような SQL コードで作成されたデータベースに依存しています。
この例では、 filter.py に含まれる次のPythonハンドラーコードを使用しています。
ファイルをコミットし、Gitリポジトリのクローンを更新します。¶
Git クライアントから、リモートリポジトリにコードを追加します。
次の例のコードでは、git コマンドラインツールを使用してハンドラーファイルをローカルリポジトリに追加してコミットし、Snowflake の Git リポジトリクローンによってリファレンスされるリモートリポジトリにプッシュします。
Snowflakeで、Gitリポジトリのクローンをリフレッシュします。
Snowflake とリモートの Git リポジトリとの統合をセットアップ した結果、Snowflake に Git リポジトリのクローンができたとすると、リモートリポジトリからフェッチして Git リポジトリのクローンをリフレッシュすることができます。
Snowflake を使ってリモートリポジトリからリフレッシュする方法は、他の Git クライアントツールでの作業と似ており、作業を開始する前にリモートリポジトリからフェッチして、最新の変更点を確保します。
次の例のコードは ALTER GIT REPOSITORY コマンドを実行し、リモートリポジトリから最新の変更点を取得します。コードは、ブランチ、タグ、コミットを含む完全なクローンを生成します。
Git リポジトリのクローンにあるファイルを使用するプロシージャを作成し、実行します。¶
Snowflakeでプロシージャを記述します。
プロシージャを書いたら、そのハンドラーコードをSnowflakeのGitリポジトリクローンのコードファイルの場所でリファレンスできます。たとえば、
snowflake_extensionsという Git リポジトリのクローンと同期しているリモートリポジトリのメインブランチにあるファイルpython-handlers/filter.pyをリファレンスするには、次のような構文を使います。次の例のコードでは、
filter_by_roleというプロシージャを作成し、Git リポジトリのクローンに保存されているハンドラーコードを指定します。プロシージャを実行します。
次のコードはプロシージャを実行します。
次は、プロシージャからの出力の例です。
新しいアカウントを構成するには、Gitリポジトリのクローンファイルを使用します。¶
この例では、Gitリポジトリクローンに含まれる SQL スクリプトをSnowflakeで実行する方法を説明します。例のスクリプトでは、ユーザーとロールを作成します。
この例では、 EXECUTE IMMEDIATE FROM コマンドを使って、Git リポジトリ・クローンのファイルに含まれる SQL ステートメントを実行します。
EXECUTE IMMEDIATE FROM を使用すると、リモート Git リポジトリで管理するスクリプトを (どの Snowflake セッションからでも) 実行できます。たとえば、組織内のすべての新しいSnowflakeアカウントを設定するスクリプトがあるとします。スクリプトには、ユーザー、ロール、オブジェクトを作成し、アカウントとオブジェクトに権限を付与するステートメントが含まれている場合があります。
次の内容で、ファイル
setup.sqlを作成します。SQL ファイルをリモートの Git リポジトリにコミットします。
Use the git command-line tool to commit the file to your remote Git repository:
詳細な手順については、 ファイルをコミットし、Gitリポジトリのクローンを更新します。 をご参照ください。
Git リポジトリのクローンをリフレッシュします。
Git リポジトリのクローンをリフレッシュ
configuration_repo:詳細な手順については、 ファイルをコミットし、Gitリポジトリのクローンを更新します。 をご参照ください。
Snowflakeで、Gitリポジトリクローンのファイルを実行します。
注釈
次のステートメントを実行するユーザーは、ファイル内のすべてのステートメントを実行するために必要な権限を持つロールを使用する必要があります。詳細については、 アクセス制御の要件 をご参照ください。
EXECUTE IMMEDIATE FROM コマンドは、ファイル内の最後の SQL ステートメントの結果を 返します。