SnowflakeでのGit操作

このトピックでは、 SQL コマンドと Snowsight を使って、一般的なリポジトリ操作を行う方法について説明します。

また、Gitでは次のような使い方もできます。それぞれ独自のGit操作の方法を含んでいます。

GitリポジトリとSnowflakeアカウントの統合

Gitリポジトリとの統合の設定については、 Gitを使用するためのSnowflakeの設定 をご参照ください。

Git リポジトリのクローンをリポジトリからリフレッシュします。

Snowflake で Git リポジトリのクローンをリフレッシュするには、リモートリポジトリからすべてのブランチ、タグ、コミットを取得する完全クローンを使用します。これを実行すると、以前に取得され、リモートリポジトリに存在しなくなったブランチとコミットも削除されます。

このセクションで説明する操作を実行するには、 ALTER GIT REPOSITORY のアクセス制御 で説明されているSnowflakeアクセスが必要です。

Git リポジトリのクローンをリフレッシュするには、 Snowsight か SQL を使います。

Git リポジトリのクローンをリフレッシュしたい場合は、 ALTER GIT REPOSITORY コマンドを使用して、Snowflake の Git リポジトリのクローンにリモートの Git リポジトリの内容をフェッチすることができます。

次の例のコードは、Git リポジトリのクローンをリポジトリの内容で更新します。

ALTER GIT REPOSITORY snowflake_extensions FETCH;
Copy

リポジトリのブランチまたはタグのリストを表示する

リモートリポジトリから取得した Snowflake Git リポジトリクローンで利用可能なブランチとタグのリストを表示できます。

このセクションで説明する操作を実行するには、次のトピックで説明するSnowflakeアクセスが必要です。

Snowsight または SQL を使用して、ブランチまたはタグのリストを表示できます。

SHOW GIT BRANCHES および SHOW GIT TAGS コマンドを使用して、ブランチとタグを表示できます。

次の例では、Gitリポジトリ snowflake_extensions 内のブランチをリストする出力が生成されます。

SHOW GIT BRANCHES IN snowflake_extensions;
Copy

上記のコマンドは次のような出力を生成します。

--------------------------------------------------------------------------------
| name | path           | checkouts | commit_hash                              |
--------------------------------------------------------------------------------
| main | /branches/main |           | 0f81b1487dfc822df9f73ac6b3096b9ea9e42d69 |
--------------------------------------------------------------------------------

リポジトリファイルのリストを表示する

ブランチ、タグ、コミット内のファイルのリストを表示するには、 Snowsight または SQL を使用します。

リポジトリにあるファイルのリストを表示するには、 LIST コマンドを次のような形式で使用します。ステージと同じように Git リポジトリのクローンを指定します (LIST を省略して LS とすることもできます)。

  • ブランチでのリスト:

    LS @repository_name/branches/branch_name;
    
    Copy
  • タグ名でのリスト:

    LS @repository_name/tags/tag_name;
    
    Copy
  • コミットハッシュでのリスト:

    LS @repository_name/commits/commit_hash;
    
    Copy

次の例では、Gitリポジトリ snowflake_extensions のメインブランチ内のファイルをリストする出力が生成されます。

LS @snowflake_extensions/branches/main;
Copy

上記のコマンドは次のような出力を生成します。

-------------------------------------------------------------------------------------------------------------------------------------------------------
| name                                                         | size | md5 | sha1                                     | last_modified                |
-------------------------------------------------------------------------------------------------------------------------------------------------------
| snowflake_extensions/branches/main/.gitignore                | 10   |     | e43b0f988953ae3a84b00331d0ccf5f7d51cb3cf | Wed, 5 Jul 2023 22:42:34 GMT |
-------------------------------------------------------------------------------------------------------------------------------------------------------
| snowflake_extensions/branches/main/python-handlers/filter.py | 169  |     | c717137b18d7b75005849d76d89037fafc7b5223 | Wed, 5 Jul 2023 22:42:34 GMT |
-------------------------------------------------------------------------------------------------------------------------------------------------------

Git リポジトリのクローンプロパティの表示

SnowflakeでGitリポジトリクローンに関連付けられたプロパティを表示できます。

このセクションで説明する操作を実行するには、 DESC GIT REPOSITORY のアクセス制御 で説明されているSnowflakeアクセスが必要です。

Git リポジトリのクローンのプロパティを表示するには、 Snowsight あるいは SQL を使います。

Git リポジトリのクローンのプロパティを表示するには、 SQL コマンド SHOW GIT REPOSITORIESDESCRIBE GIT REPOSITORY を使います。

プロパティ情報には、Gitオリジン URL、 API 統合の名前、リモートリポジトリへの接続に使用される認証情報(シークレット として指定)などが含まれます。

DESCRIBE GIT REPOSITORY snowflake_extensions;
Copy

上記のコマンドは次のような出力を生成します。

--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
| CREATED_ON                    | NAME                 | DATABASE_NAME | SCHEMA_NAME | ORIGIN                                                 | API_INTEGRATION     | GIT_CREDENTIALS           | OWNER        | OWNER_ROLE_TYPE | COMMENT |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
| 2023-06-28 08:46:10.886 -0700 | SNOWFLAKE_EXTENSIONS | MY_DB         | MAIN        | https://github.com/my-account/snowflake-extensions.git | GIT_API_INTEGRATION | MY_DB.MAIN.GIT_SECRET     | ACCOUNTADMIN | ROLE            |         |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

リポジトリからコードを実行する

リポジトリのファイルに含まれるコードを実行できます。

このセクションで説明する操作を実行するには、 EXECUTE IMMEDIATE FROM のアクセス制御 で説明されているSnowflakeアクセスが必要です。

Snowsight または SQL のいずれかを使用してコードを実行できます。

EXECUTE IMMEDIATE FROM を使えば、Git リポジトリのクローンでコードを実行できます。

次の例のコードは、Git リポジトリのクローン snowflake_extensions から create-database.sql のコードを実行します。

EXECUTE IMMEDIATE FROM @snowflake_extensions/branches/main/sql/create-database.sql;
Copy

リポジトリベースのコードをワークシートにコピーする

リポジトリファイルからワークシートにコードをすばやくコピーできます。コピーしたコードを編集して実行することも、他のユーザー用の読み取り専用テンプレートとして使用することもできます。

.sql および .py の種類のファイルの内容をコピーできます。

変更をリポジトリに保存するには、ワークシートから編集したコードをローカルGitリポジトリ内のファイル(コピー元のファイルに対応するファイルなど)にコピーし、そこから変更をコミットする必要があります。

Snowsight:

Snowsight を使用して、リポジトリ内のファイルのコンテンツをワークシートにコピーできます。

  1. Snowsight にサインインします。

  2. ナビゲーションメニューで Data » Databases を選択します。

  3. オブジェクトエクスプローラーで、表示したい Git リポジトリクローンを含むデータベースとスキーマを選択します。

  4. スキーマ内で、 Git Repositories を開きます。

  5. Git Repositories 内で、リポジトリを選択して詳細ページを表示します。

  6. リポジトリの詳細ページの Files Explorer タブで、 Branch ボタンを選択します。

  7. Branch ドロップダウンメニューから、次のいずれかを実行します。

    • リポジトリからクローンされたブランチのリストを表示するには、 Branches を選択します。

    • リポジトリからクローンされたタグのリストを表示するには、 Tags を選択します。

  8. コードをコピーするファイルを含むブランチまたはタグを選択します。

  9. リポジトリ名の下で、実行するファイルが含まれているフォルダーを選択します。

  10. 実行するコードが含まれるファイルを見つけ、 その他のオプション » Copy into worksheet を選択します。

    Snowflakeは、選択したファイルから新しいワークシートにコードをコピーします。