在工作区中为 Snowflake Notebooks 配置计算环境

设置计算环境

当用户运行笔记本时,系统会创建由 Snowflake 管理的笔记本服务来托管笔记本内核并执行代码。

创建笔记本服务时,用户可配置 Python 版本、Snowflake 容器运行时版本、计算池、空闲超时、外部访问集成,并可自定义服务名称。

每个笔记本服务仅限单个用户使用,并占用所选计算池中的一个节点。连接至同一服务的笔记本共享该节点的计算资源。如果笔记本需要专用计算资源,请创建独立的笔记本服务,避免向该服务附加更多笔记本。

../../../_images/notebook-compute-diagram1.png

管理笔记本服务

暂停

您可以通过点击 Connected,将鼠标悬停在服务名称上,然后选择 :ui:`Suspend`(暂停图标)来手动暂停笔记本服务。

或者,您可以等待服务达到其空闲超时设置,此时服务将自动暂停。有关空闲时间计算方式的详细信息,请参阅 空闲超时

暂停服务将断开所有关联笔记本的连接,清除内存状态,并移除所有包和变量。通过代码或终端在工作区文件系统及 /tmp 目录下创建的所有文件也会被移除。

备注

不支持通过代码或终端向工作区目录写入文件。有关持久化文件的信息,请参阅 使用文件系统

恢复

要恢复已暂停的服务,请将笔记本重新连接至该服务,或运行曾连接过该服务的笔记本。

删除

管理员可以删除笔记本服务。

要通过 SQL 删除笔记本服务,请执行以下操作:

DROP USER$DB_NAME.PUBLIC.[SERVICE_NAME];

编辑笔记本服务

创建后可更新笔记本服务以更改:

  1. 外部访问集成。

  2. 运行时版本。

  3. 空闲超时。

修改 (1) 或 (2) 项将暂停服务后重新启动。更改空闲超时不会重启服务。

空闲超时

每个笔记本服务均定义其自身的空闲超时。当达到空闲时长时,服务将被暂停。空闲时长自所有关联笔记本中所有运行单元结束时开始计算。如果多个笔记本共享同一服务,则仅当最后一个笔记本进入空闲状态(无运行单元)时才开始计时。

默认情况下,笔记本服务的空闲超时时间为 24 小时。您可以在创建或更新笔记本服务时配置空闲超时,以便更好地符合您的使用模式和成本优化策略。

备注

要更改账户中笔记本服务的空闲超时值(包括默认值),请联系您的 Snowflake 账户团队或 Snowflake 支持部门。

Credit 使用量

笔记本执行过程中的 Credit 消耗来源于两方面:

  • 计算池: 为笔记本内核和 Python 进程提供支持。

    当笔记本服务处于 RUNNING 状态时,Credit 持续累积直至手动暂停或因空闲超时自动暂停。连接同一服务的笔记本共享计算池的 Credit 消耗。

  • 查询仓库: 用于笔记本触发的 SQL 查询或 Snowpark 下推计算。

    仅当仓库上运行 SQL 查询或 Snowpark 下推计算时才会产生 Credit。为优化成本,请启用查询仓库的自动暂停功能。未调用任何 SQL 查询或 Snowpark 下推计算的笔记本不会产生查询仓库 Credit。

有关成本优化和价值最大化的更多信息,请参阅 优化成本

笔记本服务治理

笔记本服务属于每位用户的专属资源,仅用于运行笔记本,并存储于用户的个人数据库 (PDB) 中。

权限

所有权

由于 Snowflake 管理这些服务,OWNER_ROLE 为 NULL。

用户权限

创建用户被授予以下权限:

  • USAGE

  • OPERATE

  • DROP

  • MONITOR

管理员权限

ACCOUNTADMIN 被授予以下权限:

  • USAGE

  • OPERATE

  • DROP

这允许对所有笔记本服务进行全面管理和监督。

管理员对计算池的控制与成本监控

管理员主要通过与笔记本服务关联的计算池来管理用户访问权限和成本。

用户角色必须对计算池拥有 USAGE 权限才能创建笔记本服务并运行笔记本。计算池必须通过 ALLOWED_SPCS_WORKLOAD_TYPES 参数允许 NOTEBOOK 工作负载类型。该参数默认值为 ALL,包含 NOTEBOOK

有关计算池工作负载的详细信息,请参阅 Snowpark Container Services:使用计算池

禁用笔记本执行

管理员可以通过多种方式限制笔记本在工作区中的执行:

移除计算池的 USAGE 权限

从计算池角色中移除 USAGE 权限将阻止该角色使用该计算池,包括运行笔记本。

限制所有计算池的工作负载类型

管理员可通过两个账户级参数限制笔记本执行,同时允许其他工作负载运行。此设置将影响账户内所有角色。

  • ALLOWED_SPCS_WORKLOAD_TYPES 参数中排除 NOTEBOOK

  • NOTEBOOK 设为 DISALLOWED_SPCS_WORKLOAD_TYPES 参数。

对计算池具有 USAGE 权限的角色仍可运行参数允许的其他类型工作负载。

监控成本

管理员可监控每个计算池的消耗情况。Snowflake 建议为每个角色配置独立计算池以查看角色级消耗。为控制支出,管理员可对特定计算池应用预算限制。

查看笔记本管理的服务

使用 SHOW SERVICES命令:

SHOW SERVICES OF TYPE NOTEBOOK;

服务维护

笔记本服务属于 Snowpark Container Services 的一种,需要定期维护以确保安全性和及时更新。维护过程通常持续约 5 分钟,期间笔记本服务将暂停并重启。有关工作负载影响的详细信息,请参阅 管理笔记本服务

笔记本服务进入 RUNNING 状态后(无论新创建或从 SUSPENDED 状态恢复),均保证在 7 个日历日内( 168 小时)不会因服务维护而中断。创建满 7 天后,该服务可能因强制性维护而暂停。

多节点分布式训练支持(Snowflake Container Runtime=2.3)

此笔记本针对 Snowflake Container Runtime 2.3 进行了优化,引入了对多节点集群的支持。这使您可以跨多个节点扩展 ML 工作负载(如 PyTorch、XGBoost 和 LightGBM),进行更快的训练。

使用该文档链接获取有关在多节点集群上运行 ML 工作负载的更多信息,请参阅以下文档:https://docs.snowflake.cn/en/developer-guide/snowflake-ml/container-runtime-multi-node