SnowflakeでのGit操作

このトピックでは、一般的なリポジトリ操作を実行する方法について説明します。

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

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

リポジトリからリポジトリステージを更新する

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

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

Snowsight または SQL を使用して、リポジトリステージをリフレッシュできます。

リポジトリステージをリフレッシュするときは、 ALTER GIT REPOSITORY コマンドを使用して統合Gitリポジトリの内容をリポジトリステージに取り込むことができます。

次の例のコードは、リポジトリの内容でリポジトリステージを更新します。

ALTER GIT REPOSITORY snowflake_extensions FETCH;
Copy

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

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 コマンドを次の形式で使用します(LIST を LS と省略可能)。

  • ブランチでのリスト:

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

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

    LS @repository_stage_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 |
-------------------------------------------------------------------------------------------------------------------------------------------------------

リポジトリステージのプロパティを表示する

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

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

Snowsight または SQL のどちらかを使用して、リポジトリステージのプロパティを表示できます。

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 を使用して、リポジトリステージでコードを実行できます。

次の例のコードは、リポジトリステージ 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は、選択したファイルから新しいワークシートにコードをコピーします。