在工作区中编辑和运行笔记本

设置执行上下文

工作区中的笔记本不会自动设置数据库或架构。要查询数据,必须在单元格中使用以下 SQL 命令定义执行上下文:

USE DATABASE <database>;
USE SCHEMA <schema>;
Copy

为确保笔记本在不同环境和客户端中一致运行,请对表和其他对象使用完全限定名称。例如:

-- Query data objects using a fully qualified name
SELECT * FROM TABLE <database_name.schema_name.table_name>;

-- Create a table using a fully qualified name
WITH filtered_events AS (
    SELECT
        user_id,
        event_type,
        event_timestamp
    FROM raw_events
    WHERE event_timestamp >= '2025-01-01'
)
CREATE OR REPLACE TABLE <database_name.schema_name.table_name> AS
SELECT *
FROM filtered_events;
Copy

使用角色和仓库选择器

您可以通过笔记本编辑器左上角的选择器,或运行以下 SQL 命令来设置当前角色和仓库:

USE ROLE <role>;
USE WAREHOUSE <warehouse>;
Copy

查询仓库用于执行笔记本调用的 SQL 查询和 Snowpark 下推计算。它还用于呈现交互式数据网格,但此操作不消耗 Credit。

有关 Credit 使用详情,请参阅 设置计算

运行单元格

支持四种执行选项:

  • 运行所有单元格

  • 运行单个单元格

  • 运行当前单元格及其上方的所有单元格(通过单元格的省略号菜单)

  • 运行当前单元格及其下方的所有单元格(通过单元格的省略号菜单)

取消单元格执行

可在笔记本顶部使用 Stop,或在单元格中使用 Cancel execution

这两种操作都会停止当前正在执行的单元格,以及由 Run all 触发的任何排队单元格。

备注

当笔记本正在连接或重新连接服务时,Run all 按钮可能会暂时显示为 Stop

单元格名称

您可以为单元格命名,以便更方便地导航,并提供上下文标签。

如果导入的 .ipynb 文件已包含名称或标题元数据,将自动使用这些值。

单元格引用

双向 SQL 与 Python 单元格引用可在两种语言间重用结果和变量,从而实现 SQL 与 Python 工作流程的无缝衔接。

您可以将鼠标悬停在结果提示工具上,查看可在 Python 和 SQL 中引用该结果的 DataFrame 名称。

单元格引用

引用 SQL 单元格结果

每个 SQL 单元格会将其结果公开为名为 dataframe_x 的 Pandas DataFrame 指针。

  • 在 SQL 中,可使用双花括号引用它:{{dataframe_1}}

  • 在 Python 中,可直接将其作为 Pandas DataFrame 引用:dataframe_1

引用 Python 变量

在 SQL 查询中引用 Python 变量时,请将变量放在双花括号内。例如:

SELECT * FROM {{uploaded_df}} WHERE "price" > 326;
Copy

在 SQL 中引用 Python 变量时,同样支持 DataFrame 变量。

示例工作流程

Python 单元格

import pandas as pd

uploaded_df = pd.read_csv("../data/diamonds.csv")
uploaded_df
Copy

SQL 单元格引用 Python 变量

SELECT * FROM {{uploaded_df}} WHERE "price" > 326;
Copy

SQL 单元格引用 SQL 单元格结果

SQL 单元格的结果会提供名为 dataframe_1 的 DataFrame 指针。您可以在另一个 SQL 查询中引用它:

SELECT * FROM {{dataframe_1}} WHERE "carat" < 1.0
UNION ALL
SELECT * FROM {{dataframe_2}} WHERE "carat" >= 1.0;
Copy

交互式数据网格

数据网格支持:

  • 滚动

  • 搜索

  • 筛选

  • 排序

  • 无需代码即可创建图表

内置图表生成器

在工作区的各编辑界面中,为数据操作和可视化提供一致的用户体验。

小地图与单元格状态

小地图会根据 Markdown 标题生成目录,并显示每个单元格的会话状态,包括正在运行、已成功、失败及已修改。

笔记本内核

只要笔记本服务处于 RUNNING 状态,笔记本内核就会保持活动,从而允许关键的长时间运行任务(例如 ML 训练和数据工程作业)连续执行。

不影响内核执行的操作:

  • 浏览其他页面

  • 在 Snowsight 的其他位置工作

  • 关闭浏览器

  • 关闭计算机

您可以通过 Connected 下拉菜单关闭或重启内核。

备注

使用 Shut down kernelRestart kernel 将清除内存中的变量,但会保留任何用户安装的包。如果您想要一个仅包含预装包的纯净环境,则必须重新启动服务,或创建一个新服务并连接到该服务。

如果笔记本服务被暂停,笔记本内核也会随之关闭。有关详细信息,请参阅 设置计算

Jupyter 魔法

工作区中的笔记本运行 IPython(交互式 Python)内核,并提供标准 Jupyter 单元格和行魔法命令。运行 %lsmagic 可查看可用的魔法命令。

使用终端

终端可用于:

  • 安装依赖项

  • 管理文件

  • 运行并行作业

  • 监控计算资源使用情况

必须连接到笔记本服务才能使用终端。切换到其他服务会重启终端会话。

安装并运行 htop 以实现实时监控计算资源使用情况的示例:

# If installation fails, run `apt update` first
# Install `htop`
apt install htop

# Run `htop`
htop
Copy
语言: 中文