在 Snowsight 中管理和使用工作表

工作表提供一种强大且通用的方法,用于运行 SQL 查询或 Python 代码,以及执行其他 Snowflake 数据加载、定义和操作任务。

在 Snowsight 中打开工作表后,您可以执行以下任一操作:

浏览并打开工作表

打开工作表后,您可以查看和管理 Worksheets explorer 中的其他工作表。Worksheets explorer 还允许您搜索特定工作表。

预览工作表内容

要预览工作表的内容,您可以将鼠标悬停在 Worksheets explorer 中工作表的名称上。预览还显示用于运行工作表的角色。

您还可以从预览中复制工作表的内容。将鼠标悬停在工作表内容预览上,然后选择出现的 Copy 按钮。

使用键盘快捷键执行任务

Snowsight 提供键盘快捷键来帮助您快速导航和编辑工作表中的查询。例如,您可以使用热键在工作表中移动光标、执行查找和替换、复制行、格式化查询等。

要查看所有可用的键盘快捷键,请按 Mac 键盘上的 CMD + SHIFT + / 或 Windows 键盘上的 CTRL + SHIFT + /

更改工作表的上下文

创建工作表时,您需要指定用于执行工作表内容的角色和仓库。这些信息称为 工作表上下文,会在未来会话中保留,并与同一工作表的所有用户共享。

备注

通过角色选择器,您可以选择自己的主要角色。要在 SQL 工作表中启用辅助角色,请运行 USE SECONDARY ROLES。要确定当前会话中的辅助角色是否处于活动状态,请调用 CURRENT_SECONDARY_ROLES 函数 CURRENT_SECONDARY_ROLES

工作表的角色上下文根据授予角色的访问控制权限,确定可以对 Snowflake 对象执行哪些操作。

要设置工作表的上下文,请执行以下步骤:

  1. 登录 Snowsight。

  2. 选择 Projects » Worksheets 以打开工作表列表。

  3. 打开工作表。

  4. 打开上下文选择器。

  5. 选择用于运行工作表的角色。

  6. 选择该角色有权限使用的仓库。

  7. 选择下拉列表之外的任意位置以关闭上下文选择器。

备注

每个工作表都是一个唯一的会话,可以使用不同于您在 User 菜单中选择的角色(您的 活动角色)。更改活动角色不会更改使用上下文选择器分配给工作表的角色。

恢复仓库或调整仓库大小

在运行工作表之前或之后,您可能需要恢复仓库或调整仓库大小。

备注

您必须拥有仓库的 MODIFY 或 OWNERSHIP 权限才能更改仓库详细信息。

要使用上下文选择器查看或调整仓库详细信息,请执行以下步骤:

  1. 登录 Snowsight。

  2. 选择 Projects » Worksheets 以打开工作表列表。

  3. 打开工作表。

  4. 打开上下文选择器。

  5. 选择 Show warehouse details 图标。

  6. 对于 Status 选项,选择状态并在仓库暂停时选择 Resume

  7. 对于 Size 选项,选择大小并选择不同的大小。

  8. 选择下拉列表之外的任意位置以关闭上下文选择器。

管理工作表

您可以通过工作表选项卡或 Worksheets explorer 管理 Snowsight 中的工作表。要访问工作表选项卡菜单,请打开工作表,将鼠标悬停在选项卡上,然后选择 工作表的更多操作。要访问 Worksheets explorer,请将鼠标悬停在工作表名称上,然后选择 更多选项

每个菜单中可用的操作都基于您当前的角色。根据权限,您可以执行以下步骤:

  • 重命名、删除或移动工作表(需要“编辑”或“所有权”权限)。

  • 将工作表移入文件夹或仪表板,对工作表进行整理。

  • 从外部文件导入 SQL。

  • 设置查询的格式。

  • 搜索其他工作表。

  • 复制工作表(任意角色)。

小技巧

您可以将鼠标悬停在工作表上,预览其内容。

通过参考工作表图标,您可以确定哪些工作表在选项卡中打开。实心图标表示工作表目前处于打开状态。要访问菜单选项,请将鼠标悬停在工作表名称上,然后选择显示的省略号。

共享工作表和文件夹

通过共享工作表或工作表文件夹,您可以与同事协作。共享工作表的接收者可以编辑或查看其内容、运行查询、查看结果或复制共享工作表。

您可以与账户中的其他 Snowflake 用户共享工作表和工作表文件夹。您只能直接与之前登录过 Snowsight 的用户共享工作表。要与尚未登录 Snowsight 的人共享,请共享一个链接(确保已启用链接共享)。

共享工作表的权限

当与某人共享工作表时,可以通过选择向其他用户授予哪些权限来管理对工作表及其内容的访问。这些权限还用于 共享仪表板。工作表所有者与工作表编辑者具有相同的权限。

Snowsight 中的每个工作表都使用一个唯一的会话,在工作表上下文中分配了特定的角色和仓库。工作表角色 是最后用于运行工作表的 主要角色,并且是运行工作表所必需的。

备注

具有运行权限的用户还可以使用 USE ROLE 更改工作表的角色。

要查看早期工作表版本的结果,您需要具有主要角色,用于运行生成结果的 SQL 语句。请参阅 查看工作表的过去运行结果

授予的权限

接收者可以:

编辑

  • 编辑工作表内容。

  • 运行工作表,包括使用不同角色。

  • 查看和管理工作表的过去版本。

  • 查看和管理过去工作表版本的结果,前提是他们拥有用于生成结果的角色。

  • 与其他人共享工作表。

  • 将工作表添加到不同的文件夹。

查看 + 运行

  • 继承“查看结果”(见下文)的所有权限。

  • 运行工作表,前提是他们拥有工作表角色。

  • 查看最近工作表版本的结果。

  • 使用自己的角色复制并运行工作表。

查看结果

  • 继承“链接‘查看结果’”(见下文)的所有权限。

  • 查看最近工作表版本的结果,前提是它们拥有工作表角色。

  • 使用自己的角色复制并运行工作表。

链接“查看 + 运行”

  • 继承“链接‘查看结果’”(见下文)的所有权限。

  • 运行工作表,前提是他们拥有工作表角色。

  • 查看最近工作表版本的结果。

  • 查看工作表内容(但不能复制或运行工作表)。

链接“查看结果”

  • 查看最近工作表版本的结果,前提是它们拥有工作表角色。

  • 查看工作表内容(但不能复制或运行工作表)。

工作表所有者是创建工作表的用户,具有与工作表编辑者相同的权限。如果工作表添加到其他用户拥有的文件夹中,工作表所有者会发生变化。

重要

如果从 Snowflake 中删除工作表所有者,删除的用户仍是工作表的所有者;但是,具有任何共享权限的用户都可以继续访问和使用工作表。如果启用了链接共享,任何拥有工作表链接的用户仍然可以访问该工作表。为保持工作表访问权限,Snowflake 建议 在放弃用户之前,让用户以“编辑”权限(而不是“查看”或“查看 + 运行”)共享工作表,以便其他人可以继续修改或删除工作表。要恢复删除的用户拥有的工作表(包括未共享的工作表),请参阅 恢复已删除用户拥有的工作表

查看工作表的过去运行结果

在工作表中运行一个或所有查询时,查询结果将以表格形式显示。您可以使用键盘上的 箭头键 浏览查询结果,就像使用电子表格一样。您可以在结果表中选择列、单元格、行或区域。您可以复制和粘贴任何选择。

要查看工作表的过去运行结果,必须满足以下条件:

Snowsight 允许您查看多达 100 万行结果的生成统计数据。这些统计信息可为任何选择提供背景信息以及总体统计信息。有关更多详细信息,请参阅 自动上下文统计信息

您还可以:

  • 选择 Chart,以图表形式查看结果。有关图表的更多详细信息,请参阅 可视化工作表数据

  • 您可以查看工作表的 Query History,审查过去工作表运行的结果。请参阅 查看查询历史记录

小心

在您运行工作表时,结果会缓存。任何有权访问工作表的人都可以查看这些结果,前提是他们的主要角色与用于生成结果的角色相同。但是,如果工作表查询是受掩码或行访问策略保护的数据,或者执行查询时辅助角色处于活动状态,则缓存结果可能包括其他具有仪表盘访问权限的用户自己可能无法生成的数据。

共享工作表

要共享工作表,请执行以下步骤:

  1. 登录 Snowsight。

  2. 选择 Projects » Worksheets 以打开工作表列表。

  3. 打开工作表。

  4. 在工作表的右上角,选择 Share

  5. 输入要邀请使用工作表的 Snowflake 用户的姓名或用户名。该列表仅显示以前登录过 Snowsight 的用户。要与尚未登录 Snowsight 的人共享,请改为选择 Get Link 以生成共享链接。

  6. 选择要授予与之共享工作表的 用户的权限

  7. (可选)设置具有工作表链接的人员可以访问的权限。

  8. 选择 Done

备注

最近运行的工作表版本是共享工作表的版本。如果您尚未运行该工作表,则会共享一个空工作表。

接收者如果未运行工作表,则最多只能查看 10,000 行的结果。要查看超过 10,000 行的结果,他们必须自己运行工作表。

无论您是工作表的编辑者还是所有者,您对工作表版本所做的任何编辑都不会向协作者显示,除非您运行部分或全部工作表代码。

您与协作者共享(直接共享或通过链接共享)的任何工作表都可以在他们的搜索结果或工作表列表中显示。直接共享的工作表会立即显示,而通过链接共享的工作表会在访问后显示。这些工作表将继续在协作者的搜索结果或列表中显示,除非具有编辑权限的用户删除了这些工作表,或者已移除协作者对工作表的访问权限。

共享工作表文件夹

要共享文件夹(包括文件夹中的所有工作表),请执行以下操作:

  1. 登录 Snowsight。

  2. 选择 Projects » Worksheets 以打开工作表列表。

  3. 打开一个文件夹。

  4. 选择 Share

  5. 输入 Snowflake 用户的姓名或用户名,邀请他们访问您的文件夹。该列表仅显示以前登录过 Snowsight 的用户。如果您想与尚未登录 Snowsight 的人共享,请改为共享链接。

  6. 选择要授予与之共享文件夹的 用户的权限

  7. (可选)设置具有文件夹链接的人员可以访问的权限。

  8. (可选)选择 Get Link 以获取指向文件夹的链接,以便与他人共享。

  9. 选择 Done

如果将工作表添加到共享文件夹,该工作表将继承该文件夹的共享设置。如果该文件夹的所有者不是工作表所有者,则文件夹所有者将变为工作表所有者,并且原始工作表所有者会继承该文件夹的共享权限。

例如,如果工作表所有者将工作表添加到他们具有编辑权限的文件夹中,则该工作表将更新为由该文件夹所有者拥有,并且原始工作表所有者对该工作表具有编辑权限。

与协作者共享(直接共享或通过链接共享)的任何文件夹都可以在他们的搜索结果或工作表列表中显示。直接共享的文件夹会立即显示,而通过链接共享的文件夹会在访问后显示。这些文件夹将继续在协作者的搜索结果或列表中显示,除非具有编辑权限的用户删除了这些工作表,或者已移除协作者对工作表的访问权限。

跨账户共享工作表

工作表不能跨账户复制或共享。要与另一个 Snowflake 账户中的用户共享工作表的内容,请复制内容并与 Snowflake 之外的账户中的用户共享。

管理工作表历史记录和版本

您对工作表所做的任何本地编辑都会每三秒自动保存一次,但只有您自己能看到。当您运行 SQL 查询或在工作表中执行代码时,新版本就会更新并与所有协作者共享。您还可以查看工作表的过去版本,并可选择性复制任何版本的详细信息。有关更多信息,请参阅 切换工作表版本

更改工作表和管理工作表版本时,请注意以下事项:

  • 当您与其他用户共享工作表时,具有编辑权限的用户可以查看该工作表的过去版本。您与之共享工作表的所有用户都可以查看该工作表最新版本的结果,且最多可以查看 10,000 行。

  • 每当有权限的人运行工作表时,就会保存该工作表的新版本。

  • 如果您对工作表进行了更改,但这些更改似乎消失了,请使用版本历史记录来打开包含更改的已保存草稿。

  • 最近运行的工作表版本是协作者可见的版本。

  • 如果您对工作表进行了更改,并且希望与您共享该工作表的用户可以看到该更改,则必须运行该工作表。

  • 如果多个用户同时编辑和运行共享工作表,则每次运行该工作表都会创建一个新版本。最近运行的工作表版本是您打开或刷新工作表时可见的版本。

切换工作表版本

要查看工作表的过去版本,请执行以下步骤:

  1. 登录 Snowsight。

  2. 选择 Projects » Worksheets 以打开工作表列表。

  3. 打开工作表。

  4. 选择工作表的 Code Versions

  5. 从工作表版本列表中,选择要查看的版本的时间戳。

  6. 查看并选择性地复制该版本的工作表详细信息。

  7. 选择 Close 以返回工作表的当前版本。

如果要查看过去工作表运行的结果,请查看工作表的 Query History。请参阅 查看查询历史记录

过去工作表版本的存储结果

备注

适用于大多数账户。美国政府区域内的账户、使用 Virtual Private Snowflake (VPS) 的账户,以及使用专用连接访问 Snowflake 的账户仍能看到限制为 10,000 行的查询结果。

在工作表中所执行查询的所有结果最长可保留 24 小时。24 小时后,必须再次运行查询才能查看结果。

为支持上下文统计和共享工作表结果,25 个新查询结果会缓存长达 90 天。此缓存包含在您账户的数据存储使用量中。

恢复已删除用户拥有的工作表

如果您删除某个用户,则最多可以恢复该用户拥有的 500 个工作表。要恢复工作表,请执行以下步骤:

  1. 下载已删除用户拥有的已恢复工作表

  2. 从 SQL 文件创建工作表,将恢复的工作表重新添加到 Snowflake。

如果您希望在删除用户之前更改所有权或保留对工作表的访问权限,请要求该用户共享工作表。请参阅 共享工作表和文件夹

下载已删除用户拥有的已恢复工作表

要恢复已删除用户拥有的工作表,请下载 .tar.gz 归档文件,其中最多包含该用户拥有的 500 个工作表。

备注

您必须获得 ACCOUNTADMIN 角色才能恢复已删除用户的工作表。

  1. 登录 Snowsight。

  2. 选择 Projects » Worksheets

  3. 选择 更多选项 » Recover Worksheets from Dropped User

  4. 在对话框中,输入您账户中已删除用户的用户名。

    重要

    用户名的大小写和拼写必须与存储在 Snowflake 中的用户名完全匹配。

  5. 选择 Recover

    您的 Web 浏览器将下载 .tar 文件,其中最多包含 500 个工作表。如果删除的用户拥有的工作表超过 500 个,则仅下载最近修改的 500 个工作表。

下载已删除用户拥有的工作表后,通过从 SQL 文件创建工作表,将恢复的工作表添加到 Snowsight。

您必须将下载的 .tar 文件展开到 .sql 文件所在的文件夹,然后才能将恢复的工作表添加到 Snowsight。每次只能将一个工作表添加到 Snowsight,且将恢复的工作表添加到 Snowsight 的用户将成为工作表的新所有者。

有关详细信息,请参阅 从 SQL 文件创建工作表

恢复已删除用户拥有的工作表的注意事项

  • 仅恢复最近执行的工作表版本的标题和内容。不会恢复工作表版本历史记录、共享接收者和权限、查询结果以及工作表元数据。

  • 最多可恢复 500 个工作表。如果删除的用户拥有的工作表超过 500 个,仅恢复最近修改的 500 个工作表。

  • 仅恢复 Snowsight 中的工作表。无法使用此方法恢复已删除用户在 Classic Console 中拥有的工作表。

  • 如果多个已删除的用户具有相同的用户名,则将恢复具有该用户名的所有已删除用户拥有的工作表。

如果工作表恢复因意外原因失败,请联系 Snowflake 支持部门

工作表的内部 Snowflake 对象

Snowflake 创建以下内部对象来支持在 Snowsight 中使用工作表:

对象类型

名称

安全集成

WORKSHEETS

Blob

WORKSHEETS_APP

数据库

WORKSHEETS_APP

用户

WORKSHEETS_APP_USER

角色

APPADMIN、WORKSHEETS_APP_RL

这些内部对象用于在您账户的内部暂存区缓存查询结果。此缓存数据由账户的密钥层次结构加密和保护。

授予内部角色的有限权限仅允许 Snowsight 访问内部暂存区来存储这些结果。该角色 无法 列出您账户中的对象或访问表中的数据。

当您在 SNOWFLAKE 共享数据库的 ACCOUNT_USAGE 架构中分别查询 USERSROLES 视图时,将返回 Snowsight 用户和角色。SHOW <objects> 语句不返回这些内部对象。

语言: 中文