在 Snowsight 中管理和使用工作表

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

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

此外,您还可以 编写 SQL 语句。您也可以 编写 Python 代码

从工作表浏览其他工作表

打开工作表时,您可以在 Worksheets 资源管理器中查看其他工作表。您可以从 Worksheets 资源管理器搜索其他工作表并管理工作表。

预览工作表内容

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

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

使用键盘快捷键更新工作表

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

要查看所有可用的键盘快捷键,请打开工作表并按 Mac 键盘上的 [CMD]+[SHIFT]+[?] 或 Windows 键盘上的 [CTRL]+[SHIFT]+[?]

您还可以将鼠标悬停在工作表的选项卡上,并选择 工作表的更多操作,然后选择 Show Shortcuts 查看快捷方式。

更改工作表的会话上下文

设置工作表的会话上下文以定义用于运行工作表内容的角色和仓库。工作表上下文将被保留以供将来的会话使用。

备注

您不能选择多个角色。上下文选择器不支持辅助角色。在 SQL 工作表中启用辅助角色,运行 USE 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 资源管理器中查看和管理其他工作表:

  • 搜索其他工作表。

  • 将鼠标悬停在工作表名称上时,使用 更多选项 来重命名、复制、删除或移动工作表。

  • 使用工作表图标确定选项卡中打开了哪些工作表。填充的图标表示在选项卡中打开的工作表。

在文件夹中组织工作表

您可以使用 Snowsight 组织和管理文件夹中的工作表。

  1. 登录 Snowsight。

  2. 选择 Projects » Worksheets

  3. 选择一个工作表将其打开。

  4. 将鼠标悬停在工作表的选项卡上,然后选择 工作表的更多操作

  5. 在下拉列表中,选择 Move,然后选择要将工作表移至的文件夹或仪表板,或创建一个。

共享工作表和文件夹

您可以与账户中的其他 Snowflake 用户共享工作表和工作表文件夹。您只能直接与之前登录过 Snowsight 的用户共享工作表。如果您想与尚未登录 Snowsight 的人共享,请改为共享链接。

通过共享工作表或工作表文件夹,您可以与同事协作处理该工作表,并允许共享工作表的收件人编辑或查看工作表内容、查看结果、运行工作表或复制共享工作表。请参阅 共享工作表的权限

共享工作表的权限

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

Snowsight 中的每个工作表都使用一个唯一的会话,在工作表上下文中分配了特定的角色和仓库。工作表角色 是最后用于运行工作表的 主要角色,并且是运行工作表所必需的。如果工作表所有者或编辑者使用不同的角色运行工作表,则工作表角色可能会更改。

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

授予的权限

收件人可以:

编辑

  • 编辑工作表内容。

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

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

  • 查看工作表过去版本的结果(如果它们具有用于生成结果的角色)。

  • 与其他人共享工作表。

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

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

查看 + 运行

  • 如果他们具有工作表角色:

    • 运行工作表。

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

  • 查看工作表内容。

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

查看结果

  • 查看最新工作表版本的结果(如果它们具有工作表角色)。

  • 查看工作表内容。

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

链接“查看 + 运行”

  • 如果他们具有工作表角色:

    • 运行工作表。

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

  • 查看工作表内容。使用该链接的用户无法复制和运行该工作表。

链接“查看结果”

  • 查看最新工作表版本的结果(如果它们具有工作表角色)。

  • 查看工作表内容。使用该链接的用户无法复制和运行该工作表。

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

如果工作表所有者从 Snowflake 中删除,则删除的用户仍是该工作表的所有者,但具有编辑权限的用户可以继续使用该工作表。如果要恢复已删除用户拥有的工作表,请参阅 恢复已删除用户拥有的工作表

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

对工作表具有访问权限的所有用户都可以查看最近运行的工作表的结果,最多可查看 10,000 行。

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

如果工作表返回的结果超过 10,000 行,则共享接收者必须运行工作表才能查看完整结果。

您可以通过查看工作表的查询历史记录来查看过去工作表运行的结果。请参阅 查看查询历史记录

小心

当您共享工作表时,也会共享结果的缓存版本。如果您的工作表查询受掩码策略或行访问策略保护的数据,或者您为用户启用了辅助角色,则缓存的结果可能包含仅对用户可见的结果。共享工作表的接收者可能没有权限生成这些结果,但如果他们具有工作表角色,则可以查看所有缓存的结果。

共享工作表

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

  1. 登录 Snowsight。

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

  3. 打开工作表。

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

  5. 输入要邀请使用工作表的 Snowflake 用户的名称或用户名。该列表仅显示以前登录过 Snowsight 的用户。如果您想与尚未登录 Snowsight 的人共享,请改为共享链接。

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

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

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

  9. 选择 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 账户中的用户共享工作表的内容,请复制内容并与 Snowflake 之外的账户中的用户共享。

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

当您进行更改并运行 SQL 查询或工作表中的代码时,将保存工作表的新版本。

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

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

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

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

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

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

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

切换工作表版本

如果您想要查看工作表的过去版本,请执行以下操作:

  1. 登录 Snowsight。

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

  3. 打开工作表。

  4. 选择工作表的 Code Versions

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

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

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

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

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

备注

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

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

为了支持上下文统计信息和共享工作表结果,查询结果最多可缓存 90 天或 25 个工作表版本,以较大者为准。此缓存包含在您账户的数据存储使用量中。

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

如果您删除某个用户,则最多可以恢复该用户拥有的 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 支持部门 (https://community.snowflake.com/s/article/How-To-Submit-a-Support-Case-in-Snowflake-Lodge)。

工作表的内部 Snowflake 对象

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

对象类型

名称

安全集成

WORKSHEETS

Blob

WORKSHEETS_APP

数据库

WORKSHEETS_APP

用户

WORKSHEETS_APP_USER

角色

APPADMIN、WORKSHEETS_APP_RL

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

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

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

语言: 中文