Snowflake 中的 Git 操作¶
本主题介绍如何执行常见的存储库操作。
将 Git 存储库与您的 Snowflake 账户集成¶
有关设置与 Git 存储库的集成的信息,请参阅 设置 Snowflake 以使用 Git。
从存储库刷新存储库暂存区¶
您可以使用从远程存储库提取所有分支、标签和提交的完整克隆,刷新存储库暂存区。执行此操作时,您还会削减那些较早获取但远程存储库中已不再存在的分支和提交。
要执行本部分所述的操作,您需要 ALTER GIT REPOSITORY 访问控制 内介绍的 Snowflake 访问权限。
您可以使用 Snowsight 或 SQL 刷新存储库暂存区。
当您要刷新仓库暂存区时,可以使用 ALTER GIT REPOSITORY 命令将集成 Git 存储库的内容提取到存储库暂存区。
以下示例中的代码会使用存储库的内容更新存储库暂存区:
ALTER GIT REPOSITORY snowflake_extensions FETCH;
您可以使用 Snowsight 从远程存储库刷新存储库暂存区(其中包含远程存储库的克隆)。
登录 Snowsight。
在导航菜单中,选择 Data » Databases。
在对象资源管理器中,选择包含要刷新的 Git 存储库暂存区的数据库和架构。
在架构内部,打开 Git Repositories。
在 Git Repositories 中,选择存储库以查看详细信息页面。
在存储库详细信息中的 Files Explorer 选项卡上,选择 Fetch 按钮以刷新存储库暂存区。
查看存储库文件列表¶
您可以使用 Snowsight 或 SQL 查看分支、标签或提交中的文件的列表。
您可以使用 LIST 命令,以如下形式(可以将 LIST 缩写为 LS)查看存储库中的文件列表:
按分支名称列出:
LS @repository_stage_name/branches/branch_name;
按标签名称列出:
LS @repository_stage_name/tags/tag_name;
按提交哈希列出:
LS @repository_stage_name/commits/commit_hash;
以下示例生成的输出列出了位于 Git 存储库 snowflake_extensions
主要分支中的文件:
LS @snowflake_extensions/branches/main;
如前所述的命令会生成类似下面的输出:
-------------------------------------------------------------------------------------------------------------------------------------------------------
| 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 |
-------------------------------------------------------------------------------------------------------------------------------------------------------
您可以使用 Snowsight 查看 Git 存储库中的分支和标签的列表。
登录 Snowsight。
在导航菜单中,选择 Data » Databases。
在对象资源管理器中,选择包含要查看的 Git 存储库暂存区的数据库和架构。
在架构内部,打开 Git Repositories。
在 Git Repositories 内部,选择一个存储库以查看其详细信息页面。
在存储库的详细信息页面的 Files Explorer 选项卡上,选择 Branch 按钮。
从 Branch 下拉菜单中,选择以下任一选项:
要查看从存储库克隆的分支的列表,请选择 Branches。
要查看从存储库克隆的标签的列表,请选择 Tags。
选择要列出的文件所属的分支或标签。
在存储库名称下方,查看与您选择的内容对应的文件夹和文件的列表。
查看存储库暂存区属性¶
可以查看与存储库暂存区关联的属性。
要执行本部分所述的操作,您需要 DESC GIT REPOSITORY 访问控制 内介绍的 Snowflake 访问权限。
您可以使用 Snowsight 或 SQL 查看存储库暂存区属性。
您可以使用 SQL 命令 SHOW GIT REPOSITORIES 和 DESCRIBE GIT REPOSITORY 查看存储库暂存区属性。
属性信息包括 Git 来源 URL、API 集成的名称和用于与远程存储库连接的凭据(指定为 密钥)等。
DESCRIBE GIT REPOSITORY snowflake_extensions;
如前所述的命令会生成类似下面的输出:
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
| 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;
您可以使用 Snowsight 执行 Git 存储库中的 SQL 代码。
请注意,当您以这种方式执行代码时,您将看不到代码执行生成的输出。
登录 Snowsight。
在导航菜单中,选择 Data » Databases。
在对象资源管理器中,选择包含要查看的 Git 存储库暂存区的数据库和架构。
在架构内部,打开 Git Repositories。
在 Git Repositories 内部,选择一个存储库以查看其详细信息页面。
在存储库的详细信息页面的 Files Explorer 选项卡上,选择 Branch 按钮。
从 Branch 下拉菜单中,选择以下任一选项:
Branches,查看从存储库克隆的分支的列表。
Tags,查看从存储库克隆的标签的列表。
选择包含要执行的代码所属文件的分支或标签。
在存储库名称下,选择包含要执行的文件的文件夹。
在显示的框中,查看文件包含的代码。
这是 Snowflake 将要执行的代码。
要执行显示的代码,请选择 Execute Immediate。
详细信息页面会显示一条通知,指明代码执行开始。它稍后会指示执行是成功还是失败。
将基于存储库的代码复制到工作表中¶
您可以将代码从存储库文件快速复制到工作表中。您可以编辑和运行复制的代码,或者将其作为其他用户的只读模板。
您可以复制以下类型文件的内容:.sql
和 .py
。
要将更改保存在存储库中,您需要将工作表中的编辑代码复制到本地 Git 存储库中的文件(例如,与从中复制的文件对应的文件)中,然后从那里提交更改。
- Snowsight:
您可以使用 Snowsight 将内容从存储库中的文件复制到工作表中。
登录 Snowsight。
在导航菜单中,选择 Data » Databases。
在对象资源管理器中,选择包含要查看的 Git 存储库暂存区的数据库和架构。
在架构内部,打开 Git Repositories。
在 Git Repositories 内部,选择一个存储库以查看其详细信息页面。
在存储库的详细信息页面的 Files Explorer 选项卡上,选择 Branch 按钮。
从 Branch 下拉菜单中,执行以下任一操作:
要查看从存储库克隆的分支的列表,请选择 Branches。
要查看从存储库克隆的标签的列表,请选择 Tags。
选择包含您要复制的代码所属文件的分支或标签。
在存储库名称下,选择包含要执行的文件的文件夹。
找到要执行的代码所属的文件,然后选择
» Copy into worksheet。
Snowflake 将所选文件中的代码复制到新工作表中。