Snowflake 中的 Git 操作

本主题介绍如何使用 SQL 命令和 Snowsight 执行常见的存储库操作。

您还可以将以下功能与 Git 一起使用,每种功能都有自己执行 Git 操作的方式:

将 Git 存储库与您的 Snowflake 账户集成

您可以通过 SQL 或 Snowsight 让 Snowflake 连接到您的 Git 存储库。

有关使用 SQL 设置与 Git 存储库的集成的信息,请参阅 设置 Snowflake 以使用 Git

从远程 Git 存储库中提取

您可以在 Snowflake 中将远程存储库的所有分支、标签和提交提取到 Git 存储库克隆中。执行此操作时,您还会削减那些较早提取但远程存储库中已不再存在的分支和提交。

要执行本部分所述的操作,您需要 ALTER GIT REPOSITORY 访问控制 内介绍的 Snowflake 访问权限。

您可以使用 Snowsight 或 SQL 从远程 Git 存储库提取。

您可以使用 ALTER GIT REPOSITORY 命令,将远程 Git 存储库的内容提取到 Snowflake 中的 Git 存储库克隆。

以下示例中的代码将使用存储库的内容更新 Git 存储库克隆:

ALTER GIT REPOSITORY snowflake_extensions FETCH;
Copy

查看存储库分支或标签的列表

您可以查看从远程存储库提取的 Snowflake Git 存储库克隆中可用的分支和标签列表。

要执行本部分中介绍的操作,您需要以下主题中介绍的 Snowflake 访问权限:

您可以使用 Snowsight 或 SQL 查看分支或标签的列表。

您可以使用 SHOW GIT BRANCHESSHOW 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 访问权限。

您可以使用 Snowsight 或 SQL 查看 Git 存储库克隆属性。

您可以使用 SQL 命令 SHOW GIT REPOSITORIESDESCRIBE GIT REPOSITORY 查看 Git 存储库克隆属性。

属性信息包括 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 将所选文件中的代码复制到新工作表中。

语言: 中文