使用工作表查询数据

创建或打开工作表 之后,您可以 管理工作表,编写和执行查询,探索查询结果和历史记录,以及使用 Snowsight 设置筛选器。

在工作表中编写查询

打开工作表后,您可以编写 SQL 查询和语句。

备注

不支持在单个 API 调用中使用多个 SQL 语句。确保工作表中的每个 SQL 查询都以单个分号 (;) 结尾。

设置工作表上下文

将数据库和数据库架构(可选)设置为工作表上下文时,您可以引用架构中的对象,无需完全限定查询中的对象名称。

使用 Autocomplete 编写查询

在查询编辑器中输入脚本时,Autocomplete 功能会建议:

  • 查询语法关键字,例如 SQL 函数或别名。

  • 与架构中的表或列名称匹配的值。

选择一个函数以查看其语法和简要描述。

Snowflake 会跟踪表别名,并将其建议为 Autocomplete 选项。例如,如果将 posts as p 或 posts p 用作别名以执行查询,则下次您输入 p 时,Autocomplete 功能会将该别名建议为选项。

使用 Snowflake Copilot 编写查询

Snowflake Copilot 是一个 LLM 提供支持的助手,简化了数据分析。您可以使用自然语言请求来探索新数据集、生成查询或优化现有查询。

请参阅 使用 Snowflake Copilot 了解有关 Snowflake Copilot 的更多信息,以及入门的提示示例。

将 SQL 脚本追加到现有工作表

如果文件中有 SQL 脚本,您可以执行以下操作,将脚本追加到现有工作表:

  1. Sign in to Snowsight.

  2. In the navigation menu, select Projects » Worksheets.

  3. 打开工作表。

  4. 将鼠标悬停在工作表的选项卡上并选择 工作表的更多操作,然后选择 Import SQL from File。

  5. 浏览计算机上的文件 SQL。

    文件内容将追加到工作表。

参阅工作表中的数据库对象名称

在工作表中编写查询时,请参阅 Databases 资源管理器中与查询相关的数据库对象。您可以深入了解特定的数据库对象,也可以使用搜索来查找您有权访问的数据库、架构或对象。

使用 Databases 资源管理器,您可以固定数据库和数据库对象,以便快速参考。将鼠标悬停在数据库对象之上时,选择 Pin 图标可将数据库对象固定。固定对象在 Databases 资源管理器顶部的 Pinned 部分中显示。您可能需要展开该部分才能查看所有固定对象。

找到某个数据库对象后,您可以将该对象的名称放在正编辑的工作表中:

  1. Sign in to Snowsight.

  2. In the navigation menu, select Projects » Worksheets.

  3. 打开工作表。

  4. 在 Databases 资源管理器中找到数据库对象。

  5. Hover over the object name and select ... more menu » Place Name in Editor.

    完全限定的对象名称在工作表中的光标位置之后显示。

对于数据库表和视图,您还可以将列名称添加到正在编辑的工作表中:

  1. Sign in to Snowsight.

  2. In the navigation menu, select Projects » Worksheets.

  3. 打开工作表。

  4. 在 Databases 资源管理器中找到数据库对象。

  5. Hover over the object name and select ... more menu » Add Columns in Editor.

    逗号分隔的列名称在工作表中的光标位置之后显示。

设置查询的格式

工作表打开时,您可以选择工作表的名称,以设置工作表中查询的格式,并查看键盘快捷键。

  1. Sign in to Snowsight.

  2. In the navigation menu, select Projects » Worksheets.

  3. 打开工作表。

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

  5. 在下拉列表中,选择 Format query 以设置查询文本的格式,从而提高可读性。

将数据加载到表中

如果您使用的是工作表,并且想要添加一些数据来使用,您可以在不退出工作表的情况下将数据加载到表中:

  1. Sign in to Snowsight.

  2. In the navigation menu, select Projects » Worksheets.

  3. 打开工作表。

  4. 选择 Objects 以查看对象资源管理器。

  5. 使用搜索或浏览来查找特定表。

  6. Hover over a specific table name and select 更多选项 » Load Data.

  7. 按照提示上传一个或多个 50MB 或更小的结构化或非结构化文件。

有关更多详细信息,请参阅 使用 Snowsight 加载数据。

执行和运行查询

您可以在同一工作表中按顺序运行单个查询或多个查询。

  • 要运行单个查询,请在查询编辑器链接中,将光标放在查询中,然后选择 Run 按钮。

  • 要运行整个工作表,请从 Run 按钮旁边的 More options 下拉菜单中选择 Run All。

在文件夹中运行工作表

不再为文件夹分配角色。文件夹中工作表的所有者或编辑者可以将工作表更改为以任意角色运行。您还可以将 USE ROLE 添加到文件夹中的工作表,以不同的角色运行工作表中的不同语句。

在文件夹内创建工作表时,使用当前会话的角色创建工作表。

备注

要在与您共享的文件夹中运行工作表,即使您具有该文件夹的 View and Run 或 Edit 权限,您也必须使用与工作表相同的角色。如果您没有相同的角色,请复制工作表并以您自己的角色运行。

浏览工作表结果

备注

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

在工作表中运行一个查询或所有查询时,您会看到查询结果。

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

对于多达 100 万行的结果,您可以查看生成的统计信息,这些统计信息显示任何选择的上下文信息以及总体统计信息。有关更多详细信息,请参阅 自动上下文统计信息。

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

查询结果将被缓存。有关更多详细信息,请参阅 过去工作表版本的存储结果 和 管理工作表历史记录和版本。

转换查询结果的成本注意事项

备注

适用于大多数账户。美国政府区域内的账户、使用 Virtual Private Snowflake (VPS) 的账户,以及使用专用连接访问 Snowflake 的账户在转换查询结果时不会收费。

请注意,对 Snowsight 工作表的查询结果执行的某些列转换活动会产生计算成本。计算成本是根据用于运行查询的同一仓库计费的。

例如,当您使用列选项按升序或降序对列进行排序时,更改会影响所有结果,而不仅仅是返回的前 10,000 行,并且会产生计算成本。

选择列时,将显示箭头,您可以使用这些箭头对列进行升序或降序排序。

要确定产生计算成本的交互,请筛选 Query History 页面,仅查看包含 SQL Text: snowsight_transform_cte 的 SQL 语句。

以下转换 不 产生成本:

  • 显示数值列的千位分隔符。

  • 以百分比形式显示列。

  • 增加或减少小数点精度。

  • 设置日期和时间戳列的格式。

此外,共享工作表的接收者对有限的结果集执行的转换不会产生成本。有关共享工作表结果的更多详细信息,请参阅 查看工作表的过去运行结果。

有关计算成本的更多详细信息,请参阅 了解计算成本。

自动上下文统计信息

选择结果表中的列、单元格、行或区域,在检查器窗格(结果表的右侧)中查看有关所选数据的相关信息。系统会自动为所有列类型生成上下文统计信息。统计信息旨在帮助您一目了然地理解数据。

列概览显示每列的统计信息预览。从检查器或列标题中选择一列,以查看详细的列统计信息。

统计信息窗格为不同类型的列生成不同的指标。您可以使用统计信息窗格中的项目进行交互和筛选。

已填充/空指标

所有列都显示已填充和为空的行数。显示某些数据类型(例如电子邮件和 JSON)的列也指明无效行数。

直方图

针对所有日期、时间和数值列显示。

直方图指示属于特定范围的行。点击某个条形或在直方图上拖动可选择范围。您可以点击直方图上方的值标签以输入特定值,从而微调选择。

频率分布

针对所有分类列显示。分类列是多次使用相同值的文本列。

电子邮件域分布

针对电子邮件列显示。电子邮件域分布显示域名的出现频率分布。

键分布

针对 JSON 列显示。如果所有行都包含 JSON 对象,则键分布显示结果集中存在的顶级键的频率。如果列包含 JSON 数组,则键分布将显示列中 JSON 值的相对类型。

查看查询详细信息

Query Details 包含有关查询执行的信息,如下所示:

  • 查询执行的持续时间。

  • 结果中的行数。

  • 执行完成时间。

  • 查询扫描的数据量。

  • 用于执行查询的角色。

  • 用于执行查询的仓库。

Some query details are available for only 14 days.

查看查询配置文件

To access a detailed profile of your query, on the Query Details pane select the ... more menu » View Query Profile.

查询配置文件会在新的浏览器选项卡中打开。

有关查看查询配置文件的信息,请参阅 查看查询配置文件。

下载查询结果

要以 CSV 格式或 TSV 格式的文件下载查询结果,请选择 Download results。

文件的大小取决于查询返回的数据量。Snowflake 不限制为查询结果导出的文件的大小。

查看查询历史记录

在工作表中运行 SQL 后,您可以查看在工作表中运行的查询的历史记录,例如比较不同查询运行的结果。您必须使用与工作表相同的角色,才能查看工作表的查询历史记录。

当 Results 窗格可见时,请选择 查询历史记录 (Query history),以查看工作表中已运行的查询,以及这些查询的结果。历史记录最多包括当前对话和过去 14 天内之前对话期间相应工作表中运行的 25 个查询。

您可以查看以下信息:

  • 正在进行的查询的状态。

  • 查询的运行时间。

  • 查询的运行时长,以毫秒或秒为单位。

  • 运行的查询。

  • 查询 ID。

选择一行,在 Results 窗格中查看相应查询执行的结果。如果您没有用于运行您在 Query history 中查看的查询的主要角色,您无法查看相应查询的结果。不显示由存储过程或 Python 工作表生成的子查询。

要按状态、仓库或其他方面筛选工作表的查询历史记录,请执行以下操作:

  • 按状态筛选查询执行。例如,查看仍处于 Running 或 Queued 状态且尚未显示结果的查询。

  • 选择 显示或隐藏筛选器,按仓库、查询中的 SQL 文本、特定查询 ID 或超过特定时间段的持续时间进行筛选。

将鼠标悬停在查询执行行上,查看已运行的 SQL 语句的完整预览,复制查询 ID,并选择性打开查询执行的查询详细信息。有关查询详细信息的更多信息,请参阅 在 Snowsight 中查看 Query History。

通过 Snowflake Native App 编辑的查询历史记录数据

For queries related to a Snowflake Native App, the query_text and error_message fields are redacted from the query history in the following contexts:

  • 安装或升级应用程序时运行的查询。

  • 源自应用程序拥有的存储过程的子作业的查询。

在每种情况下,Snowsight 中查询历史记录的单元格显示空白。