工作区¶
概述¶
工作区提供了一个统一编辑器,用于创建、整理和管理跨多种文件类型的代码,可用于分析数据、开发模型和构建管道。
工作区 由您专有,它提供了一个开发环境,可供您在其中构建、实验和测试自己的工作。工作区中的所有内容均基于文件,这使您可以处理更复杂的项目,并轻松与 Git 集成,以实现版本控制、开展协作并与现有工作流程保持一致。
工作区环境¶
工作区是一种新的编辑器,由六个部分或 窗格 组成:

工作区: 一个可存放所有文件和文件夹的区域。拖动文件即可在文件夹之间移动文件。使用嵌套文件夹将相关工作表分组到逻辑类别下,这样无需在扁平列表中搜索即可快速找到特定工作表。每个用户都有一个名为“My Workspace”的默认工作区,该工作区由 Snowflake 自动配置。您也可以通过在 Workspaces 菜单中选择 + Add New 来创建新的工作区。默认工作区不能删除或重命名。
工作表: 打开和编辑您拥有或拥有任何权限的工作表。请注意,如果您仅拥有工作表的编辑权限,则编辑内容不会得到保存。要将工作表转换为工作区中的文件,请将其拖动到工作区内的文件夹。工作区查询的运行方式与工作表类似,但有一些细微区别,包括 UI 性能更高,以及能从同一个 SQL 文件同时运行两个查询。
对象资源管理器: 账户中所有数据库、各数据库的架构以及其他对象的分层视图,按类型整理。可以使用筛选器搜索对象。您还可以通过选择 Show databases I can query 来筛选掉不可用的对象,以简化视图。垂直省略号 |vertical-ellipsis|(更多操作)按钮中的可用选项因对象类型而异,但包括在编辑器中放置名称、复制名称和查看定义等功能。要打开或关闭 :ui:`Object Explorer` 或 :ui:`File Explorer`,请选择“Workspaces”窗口底部工具栏中的 :ui:`File Explorer` 图标 |file-explorer-open-close|。
编辑器: 编辑查询,以及将多个文件置于并排拆分视图中,以便同时查看这些文件。使用内嵌 Copilot 直接在编辑器工作区中获取建议和完成内容。
结果: 将结果置于并排拆分视图中,或者固定结果以便于比较。
查询历史记录: 查看您已运行的所有查询的历史记录。Current File 显示当前在编辑器中打开和选定的文件中的历史查询。筛选到当前文件或所有文件。All Files 显示您在所有文件中运行的所有历史查询。要打开或关闭此视图,请选择“Workspaces”窗口底部工具栏中的 Query History 图标
。
创建和使用文件和文件夹¶
在工作区中,您可以使用熟悉的 IDE 和源代码控制约定来编写、整理和运行代码。
登录 Snowsight。
在导航菜单中,选择 Projects » Workspaces。
选择相应文件夹旁边的 +。如果您是首次使用工作区,请选择 + Add New。
从以下选项中进行选择,以创建新文件或文件夹,或是上传现有文件或文件夹:
SQL File:在编辑器中创建一个新的空白 SQL 文件,作为编辑器中的选项卡。默认情况下,
.sql
会追加到未命名的文件中。编辑器将其识别为 SQL 文件,并启用语法突出显示和自动填充功能。File:创建新文件。命名文件并指定其扩展名。如果编辑器(例如 Java、JavaScript 或 Scala)可以识别该扩展名,则会启用代码突出显示和自动填充功能。
Folder:在工作区内创建一个新的空文件夹。
Upload Files:将一个或多个文件上传到工作区中的任何位置。编辑器利用文件扩展名,在打开文件时为文件应用相应的图标、行为和语法突出显示。例如,
.sql
文件会显示 SQL 特定功能。Upload Folder:选择一个或多个要添加到所选工作区的文件或文件夹。
管理文件¶
您可以重命名、删除、移动和整理工作区、文件和文件夹。
要重命名或删除工作区、文件或文件夹,请执行以下操作:
将鼠标悬停在目标上并选择垂直省略号 |vertical-ellipsis|(更多操作)。
选择 Rename 或 Delete。如果您选择删除,系统会提示您确认。
要在工作区中创建文件夹,请选择工作区或现有文件夹旁边的 +。
要整理文件和文件夹,请将任何文件或文件夹拖动到同一工作区中的其他位置。您也可以将工作表拖放到工作区中。
在一个布局中查看多个文件或结果¶
使用选项卡和拆分窗格管理多个文件有多方面的优势:
并排比较代码或结果:在处理另一个工作表查询时,快速参考一个工作表查询。
更高效地处理多项任务:只需较少的切换次数,即可同时查看不同的单元格、输出或文件。
要调整工作区布局,请在 Workspaces 窗格中选择垂直省略号 |vertical-ellipsis|(更多操作),然后选择相应选项:
Split right
Split down
Close others
集成 Git 存储库¶
工作区可以是 Snowflake 的本地工作区,您也可以将开发中的工作区与 Git 存储库中的分支同步。在工作区中,您可以执行以下操作:
将最新更改从您的 Git 存储库提取到工作区。
提交更新的文件并将其推送 回您的 Git 存储库。
直接在工作区中 查看和解决任何冲突。
创建 Git 工作区¶
您可以创建连接到 Git 存储库的工作区,直接在 Snowsight 中开发和管理文件。
备注
一个 Git 存储库必须包含至少一个分支;不支持空存储库。
要创建新的 Git 同步工作区,请执行以下操作:
登录 Snowsight。
在导航菜单中,选择 Projects » Workspaces。
在 Workspaces 菜单中,选择 From Git repository。
从 Git 存储库中复制 URL(例如
https://www.github.com/my-user/my-repo-name
),然后将其粘贴到 Repository URL 字段中。可选:重命名新的 Git 同步工作区。
在 API Integration 菜单中,选择一项 API 集成。
API 集成由账户管理员创建,必须允许访问您在步骤 4 中使用的 Git 存储库 URL。有关详细信息,请参阅 设置 Snowflake 以使用 Git。
此外,如果您使用 GitHub 作为 Git 提供商,并且更希望使用 OAuth 身份验证,则账户管理员必须创建支持 OAuth 的 API 集成。例如:
CREATE OR REPLACE API INTEGRATION api_integration_name API_PROVIDER = git_https_api API_ALLOWED_PREFIXES = ('https://github.com/') API_USER_AUTHENTICATION = ( TYPE = snowflake_github_app ) ENABLED = TRUE;
在 API 集成下,选择一种身份验证方法:
OAuth2 – 选择 Sign in,以向您的 GitHub 存储库进行身份验证。登录后,在后续会话中无需再提供凭据。请注意,OAuth2 不适用于 PrivateLink 环境。
Personal access token – 选择存储包含您的令牌的对象的数据库和架构。要创建新密钥,请选择 + Secret 并输入所需的详细信息。必须将 API 集成配置为允许访问此密钥或所有密钥。
Public repository – 如果您使用不需要身份验证的公共存储库,请选择此选项。请注意,无法将任何更改从您的工作区提交并推送到此公共存储库。
选择 Create。
创建新分支¶
您可以从当前分支创建一个新分支,以独立处理更改。
登录 Snowsight。
在导航菜单中,选择 Projects » Workspaces。
选择 Changes 选项卡。
选择存储库下拉列表。
选择 + New。
指定新的分支名称,然后选择 Create。
切换到另外一个分支¶
如果您已保存更改,但尚未提交,则需要在切换分支之前选择如何处理这些更改。
登录 Snowsight。
在导航菜单中,选择 Projects » Workspaces。
在 Git 工作区视图中,选择 Changes。
从分支菜单中,选择要切换到的分支。
提示:要筛选列表,请开始键入分支名称。
提取远程分支¶
如果在 Snowsight 外部创建了新分支(例如,在 Git 提供商中创建了分支),则可以使用 Fetch All 选项,将其提取到 Git 同步工作区中。这会更新您的可用远程分支列表。
登录 Snowsight。
在导航菜单中,选择 Projects » Workspaces。
在 Git 工作区视图中,选择 Changes。
选择 Pull 菜单旁边的向下箭头,然后选择 Fetch All。提取完成后,新创建的远程分支会显示在分支列表中,可供签出。
查看已更新的文件¶
要查看自上次成功提交和推送以来添加、删除或修改的所有文件,请执行以下操作:
登录 Snowsight。
在导航菜单中,选择 Projects » Workspaces。
在文件夹视图的顶部,选择 Changes。修改后的文件用 M 表示,新添加的文件用 A 表示,已删除的文件用 D 表示。
要通过差异可视化的方式查看编辑器中的更改,请选择一个文件。
提交和推送更新¶
在查看更改后,您可以从工作区内提交更改,并将其推送到远程 Git 存储库。
要提交更新后的文件并将其推送到远程 Git 存储库,请执行以下操作:
登录 Snowsight。
在导航菜单中,选择 Projects » Workspaces。
在文件夹视图的顶部,选择 Changes。
在 Commit message 字段中编写一条提交消息。
选择 Push。
编写提交消息,然后选择 Push 将更新推送到 Git 存储库。
备注
如果检测到冲突,系统会提示您先提取。选择 Pull,查看存在冲突的文件列表。
查看和解决冲突¶
如果在推送期间发生冲突,则可以直接在工作区中查看和解决冲突,然后再次提交。
在工作区的文件夹视图顶部,选择 Changes。如果一个或多个文件发生冲突,则视图顶部会显示一条消息。有冲突的文件用红色的 M 表示。
要通过差异可视化的方式查看编辑器中的冲突,请选择一个文件。在 File with conflicts 下,差异会以内嵌方式突出显示。
接受当前更改和/或传入的更改。此时会显示合并的结果。
在 Diff View 下,您可以并排查看当前版本和远程版本。
选择 Accept all current 或 Accept all remote。
解决冲突后,选择 Push。
编写一条提交消息。
选择 Push。
键盘快捷键¶
工作表提供了键盘快捷键,可帮助您快速导航、自定义视图和编辑查询。下表列出了常用键盘快捷键:
任务 |
MacOS 快捷键 |
Windows 快捷键 |
---|---|---|
运行选定项 |
command + return |
CTRL + Enter |
运行全部 |
command + shift + return |
CTRL + Alt + Enter |
水平拆分窗格 |
control + \ |
CTRL + \ |
垂直拆分窗格 |
control + shift + \ |
CTRL + Shift + \ |
关闭焦点标签页 |
control + W |
CTRL + W |
复制所选文件 |
command + C |
CTRL + C |
剪切所选文件 |
command + X |
CTRL + X |
将文件粘贴到所选位置 |
command + V |
CTRL + V |
打开查询结果窗格 |
control + option + ↑ |
CTRL + Alt + ↑ |
关闭查询结果窗格 |
control + option + ↓ |
CTRL + Alt + ↓ |
打开内联 Copilot |
command + I |
CTRL + I |
将代码注释掉 |
command + / |
CTRL + / |
管理工作区¶
要禁用工作区,请将 ENABLE_PERSONAL_DATABASE 账户级别参数设置为 FALSE:
ALTER ACCOUNT SET ENABLE_PERSONAL_DATABASE = FALSE;
此参数需要 ACCOUNTADMIN 权限。将其设置为 FALSE
之后,工作区将无法运行;但是,工作区仍将列在 Snowsight 导航菜单中。
无需为工作区启用次要角色,但如果您的会话策略明确禁止次要角色,则当前限制将阻止工作区运行,直至移除该会话策略为止。
注意事项¶
在用户首次访问工作区时,Snowflake 会自动创建一个特定于用户的内部数据库(以前称为 个人数据库)。该数据库专门用于存储工作区,不能包含表或视图等标准对象。除了启用工作区功能外,它不会向用户授予任何其他功能或权限。
管理员可能会注意到,用户似乎拥有该数据库的 OWNERSHIP、USAGE、CREATE 和 SCHEMA 权限。这些是与工作区交互所必需的权限,不会影响对其他资源的访问。
限制¶
工作区不支持共享。
查询筛选器 不受支持。任何包含筛选器的查询都将失败。
工作区文件不会包含在 Universal Search 结果中。
在新工作区 UI 和旧工作表 UI 中同时打开和编辑同一个工作表可能会导致更改丢失。
对于工作表,新工作区 UI 和旧工作表 UI 中的执行上下文设置(角色、仓库和命名空间)不同步。