工作区

概述

工作区提供了一个统一编辑器,用于创建、整理和管理跨多种文件类型的代码,可用于分析数据、开发模型和构建管道。

工作区 由您专有,它提供了一个开发环境,可供您在其中构建、实验和测试自己的工作。工作区中的所有内容均基于文件,这使您可以处理更复杂的项目,并轻松与 Git 集成,以实现版本控制、开展协作并与现有工作流程保持一致。

工作区环境

工作区是一种新的编辑器,由六个部分或 窗格 组成:

工作区环境概述。
  1. 工作区: 一个可存放所有文件和文件夹的区域。拖动文件即可在文件夹之间移动文件。使用嵌套文件夹将相关工作表分组到逻辑类别下,这样无需在扁平列表中搜索即可快速找到特定工作表。每个用户都有一个名为“My Workspace”的默认工作区,该工作区由 Snowflake 自动配置。您也可以通过在 Workspaces 菜单中选择 + Add New 来创建新的工作区。默认工作区不能删除或重命名。

  2. 工作表: 打开和编辑您拥有或拥有任何权限的工作表。请注意,如果您仅拥有工作表的编辑权限,则编辑内容不会得到保存。要将工作表转换为工作区中的文件,请将其拖动到工作区内的文件夹。工作区查询的运行方式与工作表类似,但有一些细微区别,包括 UI 性能更高,以及能从同一个 SQL 文件同时运行两个查询。

  3. 对象资源管理器: 账户中所有数据库、各数据库的架构以及其他对象的分层视图,按类型整理。可以使用筛选器搜索对象。您还可以通过选择 Show databases I can query 来筛选掉不可用的对象,以简化视图。垂直省略号 |vertical-ellipsis|(更多操作)按钮中的可用选项因对象类型而异,但包括在编辑器中放置名称、复制名称和查看定义等功能。要打开或关闭 :ui:`Object Explorer` 或 :ui:`File Explorer`,请选择“Workspaces”窗口底部工具栏中的 :ui:`File Explorer` 图标 |file-explorer-open-close|

  4. 编辑器: 编辑查询,以及将多个文件置于并排拆分视图中,以便同时查看这些文件。使用内嵌 Copilot 直接在编辑器工作区中获取建议和完成内容。

  5. 结果: 将结果置于并排拆分视图中,或者固定结果以便于比较。

  6. 查询历史记录: 查看您已运行的所有查询的历史记录。Current File 显示当前在编辑器中打开和选定的文件中的历史查询。筛选到当前文件或所有文件。All Files 显示您在所有文件中运行的所有历史查询。要打开或关闭此视图,请选择“Workspaces”窗口底部工具栏中的 Query History 图标 查询历史记录

创建和使用文件和文件夹

在工作区中,您可以使用熟悉的 IDE 和源代码控制约定来编写、整理和运行代码。

  1. 登录 Snowsight

  2. 在导航菜单中,选择 Projects » Workspaces

  3. 选择相应文件夹旁边的 +。如果您是首次使用工作区,请选择 + Add New

  4. 从以下选项中进行选择,以创建新文件或文件夹,或是上传现有文件或文件夹:

    • SQL File:在编辑器中创建一个新的空白 SQL 文件,作为编辑器中的选项卡。默认情况下,.sql 会追加到未命名的文件中。编辑器将其识别为 SQL 文件,并启用语法突出显示和自动填充功能。

    • File:创建新文件。命名文件并指定其扩展名。如果编辑器(例如 Java、JavaScript 或 Scala)可以识别该扩展名,则会启用代码突出显示和自动填充功能。

    • Folder:在工作区内创建一个新的空文件夹。

    • Upload Files:将一个或多个文件上传到工作区中的任何位置。编辑器利用文件扩展名,在打开文件时为文件应用相应的图标、行为和语法突出显示。例如,.sql 文件会显示 SQL 特定功能。

    • Upload Folder:选择一个或多个要添加到所选工作区的文件或文件夹。

管理文件

您可以重命名、删除、移动和整理工作区、文件和文件夹。

要重命名或删除工作区、文件或文件夹,请执行以下操作:

  1. 将鼠标悬停在目标上并选择垂直省略号 |vertical-ellipsis|(更多操作)。

  2. 选择 RenameDelete。如果您选择删除,系统会提示您确认。

  • 要在工作区中创建文件夹,请选择工作区或现有文件夹旁边的 +

  • 要整理文件和文件夹,请将任何文件或文件夹拖动到同一工作区中的其他位置。您也可以将工作表拖放到工作区中。

在一个布局中查看多个文件或结果

使用选项卡和拆分窗格管理多个文件有多方面的优势:

  • 并排比较代码或结果:在处理另一个工作表查询时,快速参考一个工作表查询。

  • 更高效地处理多项任务:只需较少的切换次数,即可同时查看不同的单元格、输出或文件。

要调整工作区布局,请在 Workspaces 窗格中选择垂直省略号 |vertical-ellipsis|(更多操作),然后选择相应选项:

  1. Split right

  2. Split down

  3. Close others

集成 Git 存储库

工作区可以是 Snowflake 的本地工作区,您也可以将开发中的工作区与 Git 存储库中的分支同步。在工作区中,您可以执行以下操作:

创建 Git 工作区

您可以创建连接到 Git 存储库的工作区,直接在 Snowsight 中开发和管理文件。

备注

一个 Git 存储库必须包含至少一个分支;不支持空存储库。

要创建新的 Git 同步工作区,请执行以下操作:

  1. 登录 Snowsight

  2. 在导航菜单中,选择 Projects » Workspaces

  3. Workspaces 菜单中,选择 From Git repository

  4. 从 Git 存储库中复制 URL(例如 https://www.github.com/my-user/my-repo-name),然后将其粘贴到 Repository URL 字段中。

  5. 可选:重命名新的 Git 同步工作区。

  6. 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;
    
    Copy
  7. 在 API 集成下,选择一种身份验证方法:

    • OAuth2 – 选择 Sign in,以向您的 GitHub 存储库进行身份验证。登录后,在后续会话中无需再提供凭据。请注意,OAuth2 不适用于 PrivateLink 环境。

    • Personal access token – 选择存储包含您的令牌的对象的数据库和架构。要创建新密钥,请选择 + Secret 并输入所需的详细信息。必须将 API 集成配置为允许访问此密钥或所有密钥。

    • Public repository – 如果您使用不需要身份验证的公共存储库,请选择此选项。请注意,无法将任何更改从您的工作区提交并推送到此公共存储库。

  8. 选择 Create

更新一个分支的作者详细信息和凭据

默认情况下,您的 Snowflake 电子邮件和用户名用于向 Git 存储库提交更改。您可以随时更新这些信息。

  1. 登录 Snowsight

  2. 在导航菜单中,选择 Projects » Workspaces

  3. 选择 Changes 选项卡。

  4. 选择省略号,然后选择 Edit credentials

  5. 指定作者姓名和电子邮件。

  6. 选择 Update

创建新分支

您可以从当前分支创建一个新分支,以独立处理更改。

  1. 登录 Snowsight

  2. 在导航菜单中,选择 Projects » Workspaces

  3. 选择 Changes 选项卡。

  4. 选择存储库下拉列表。

  5. 选择 + New

  6. 指定新的分支名称,然后选择 Create

切换到另外一个分支

如果您已保存更改,但尚未提交,则需要在切换分支之前选择如何处理这些更改。

  1. 登录 Snowsight

  2. 在导航菜单中,选择 Projects » Workspaces

  3. 在 Git 工作区视图中,选择 Changes

  4. 从分支菜单中,选择要切换到的分支。

    提示:要筛选列表,请开始键入分支名称。

提取远程分支

如果在 Snowsight 外部创建了新分支(例如,在 Git 提供商中创建了分支),则可以使用 Fetch All 选项,将其提取到 Git 同步工作区中。这会更新您的可用远程分支列表。

  1. 登录 Snowsight

  2. 在导航菜单中,选择 Projects » Workspaces

  3. 在 Git 工作区视图中,选择 Changes

  4. 选择 Pull 菜单旁边的向下箭头,然后选择 Fetch All。提取完成后,新创建的远程分支会显示在分支列表中,可供签出。

查看已更新的文件

要查看自上次成功提交和推送以来添加、删除或修改的所有文件,请执行以下操作:

  1. 登录 Snowsight

  2. 在导航菜单中,选择 Projects » Workspaces

  3. 在文件夹视图的顶部,选择 Changes。修改后的文件用 M 表示,新添加的文件用 A 表示,已删除的文件用 D 表示。

  4. 要通过差异可视化的方式查看编辑器中的更改,请选择一个文件。

提交和推送更新

在查看更改后,您可以从工作区内提交更改,并将其推送到远程 Git 存储库。

要提交更新后的文件并将其推送到远程 Git 存储库,请执行以下操作:

  1. 登录 Snowsight

  2. 在导航菜单中,选择 Projects » Workspaces

  3. 在文件夹视图的顶部,选择 Changes

  4. Commit message 字段中编写一条提交消息。

  5. 选择 Push

  6. 编写提交消息,然后选择 Push 将更新推送到 Git 存储库。

    备注

    如果检测到冲突,系统会提示您先提取。选择 Pull,查看存在冲突的文件列表。

查看和解决冲突

如果在推送期间发生冲突,则可以直接在工作区中查看和解决冲突,然后再次提交。

  1. 在工作区的文件夹视图顶部,选择 Changes。如果一个或多个文件发生冲突,则视图顶部会显示一条消息。有冲突的文件用红色的 M 表示。

  2. 要通过差异可视化的方式查看编辑器中的冲突,请选择一个文件。在 File with conflicts 下,差异会以内嵌方式突出显示。

  3. 接受当前更改和/或传入的更改。此时会显示合并的结果。

  4. Diff View 下,您可以并排查看当前版本和远程版本。

  5. 选择 Accept all currentAccept all remote

  6. 解决冲突后,选择 Push

  7. 编写一条提交消息。

  8. 选择 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;
Copy

此参数需要 ACCOUNTADMIN 权限。将其设置为 FALSE 之后,工作区将无法运行;但是,工作区仍将列在 Snowsight 导航菜单中。

无需为工作区启用次要角色,但如果您的会话策略明确禁止次要角色,则当前限制将阻止工作区运行,直至移除该会话策略为止。

注意事项

在用户首次访问工作区时,Snowflake 会自动创建一个特定于用户的内部数据库(以前称为 个人数据库)。该数据库专门用于存储工作区,不能包含表或视图等标准对象。除了启用工作区功能外,它不会向用户授予任何其他功能或权限。

管理员可能会注意到,用户似乎拥有该数据库的 OWNERSHIP、USAGE、CREATE 和 SCHEMA 权限。这些是与工作区交互所必需的权限,不会影响对其他资源的访问。

限制

  • 工作区不支持共享。

  • 查询筛选器 不受支持。任何包含筛选器的查询都将失败。

  • 工作区文件不会包含在 Universal Search 结果中。

  • 在新工作区 UI 和旧工作表 UI 中同时打开和编辑同一个工作表可能会导致更改丢失。

  • 对于工作表,新工作区 UI 和旧工作表 UI 中的执行上下文设置(角色、仓库和命名空间)不同步。

语言: 中文