Snowflake Notebooks新增强可观测性与运行控制
DataHot 速览
Snowflake Notebooks发布了面向交互开发和生产定时运行的可观测性与控制改进。开发时可在笔记本内实时查看CPU和内存使用情况,并通过颜色预警及时识别资源风险。点击仪表可查看各文件对内存的占用分解,以及后台进程消耗。遇到高负载时,界面会推荐操作,如让CoCo分析瓶颈、扩展到更大计算池或重启内核,方便用户快速排查问题。
为什么值得关注:数据开发与生产调度中的Notebook可观测性是平台运维的重要环节,Snowflake将资源监控直接嵌入Notebook,能帮助数据团队减少运行失败并优化成本。
本文目录 11 节
译文
AI 逐段翻译面向交互式开发与生产环境运行的全新可观测性与控制功能
如果你在 Snowflake Workspaces 中开发 Notebook,本篇文章正是为你准备的。我们针对两种常见工作流推出了重大改进。
- 在开发过程中: 我的交互式会话状态是否良好,以及如何保持?
- 在安排运行后: 运行是否成功,如果失败,具体出了什么问题?
你现在可以在 notebook 运行的每个阶段获得可见性,在交互式开发过程中对计算资源进行实操控制,并在生产环境中获得更深入的调试可观测性。
在 notebook 中:随时查看和控制计算资源
交互式 notebook 和 Python 文件在容器服务上运行,具有固定的 CPU 和内存池。每位开发者都应能够即时获得所需计算资源并高效使用,因此我们在 notebook 中加入了会话内存和 CPU 的实时视图以及相应控制功能。你可以查看工作如何利用服务,在达到限制之前获得早期信号,从而无需离开 notebook 即可轻松避免因内存溢出而重启。
实时 CPU 和内存仪表
页脚现在实时显示服务的当前 CPU 和内存利用率。正常使用时保持中性,进入警戒区时变为黄色,在高利用率时变为红色,以便你提前应对,避免故障。
在工作区域直接显示利用率细分
点击仪表会弹出一个弹出窗口,显示内存消耗的详细分析。每个已连接的文件(notebook 和 Python)都会以颜色编码与总量对比,让你一目了然地看到哪个文件占用较高。可展开的“其他”部分涵盖其余部分:Snowflake 在服务上运行的后台进程,如 Ray、服务基础设施、终端等。
当处于警戒或高利用率区域时,弹出窗口还会提供推荐操作:
- 使用 CoCo 检查: 让 CoCo 分析你的文件以定位潜在瓶颈和优化空间。
- 在更大的计算池上创建新服务: 在需要更多空间时进行扩容。
- 重启当前文件的内核: 回收当前 notebook 或 Python 文件占用的内存。
- 管理所有运行中的内核: 查看并操作当前正在运行的所有内核。
服务完整详情链接一键可达。
服务详情窗格
为提供完整信息,新的服务详情窗格会在工作区的底部窗格中打开,需要更多空间时可展开为全屏。它包含四个标签页。
概览 一眼查看服务的实时状态和配置:计算池、运行时、空闲超时设置、已启用的外部访问集成、Python 版本和当前运行时间,以及所有当前连接到服务的 notebook 和 Python 文件。

资源监控 在时间轴上跟踪每个已连接文件以及必需后台进程的 CPU 和内存使用情况,并标记警告和阈值。筛选最近 10 分钟、1 小时、6 小时或 24 小时;缩小到特定文件;或隐藏后台进程以专注于你自己的代码。从每个图表下方的列表中,你可以关闭任何内核以释放资源,CoCo 就近在咫尺,可调查任何意外文件的高利用率。
日志 浏览服务上运行的所有内容发出的日志事件。按日志级别、容器实例和来源筛选;按严重性和时间戳排序;展开任何条目以阅读完整消息。(下文将详细介绍这些事件——同样的日志流也为生产运行提供支持。在交互式开发中,这会实时跟踪服务运行时的日志,让你能即时看到事件,而非搜索历史。)
查询 查看服务中运行的所有 SQL 查询,让你的 notebook 中执行的 SQL 不再是个黑匣子。“查询”标签页要求服务运行时版本 2.8 或更高。
页脚的指示器和服务详情窗格共同为你提供对 notebook 和 Python 文件运行环境的持续性上下文透明性,并能进行相应控制,无需离开当前工作。
在生产环境中:自信地对计划运行进行故障排查
当您讲 notebook 部署为笔记本项目对象 (NPO) 并按计划、任务或通过编排器运行时,您需要清晰且可操作的洞察。以下是具体实现:
可实际操作的错误消息
失败现在被分为具体类别。系统方面的问题明确标记为内部错误,因此你知道这不是代码问题,而用户方面的问题则返回精确、可自行解决的消息。不再使用笼统的字符串,而是显示实际原因,例如:
- 某个单元格执行失败。
- 某个单元格执行超时。
- 找不到 Notebook 文件 — 请检查文件路径是否存在,然后重试。
- 不支持此 Notebook 格式。仅支持Jupyter notebook格式版本4.5及以上。
- 从 requirements 文件安装包失败 — 检查每个包名和版本,并确保所需的任何外部网络访问已获授权。
由于内部错误和用户错误之间的区别是明确的,因此你可以立即知道是重试、修复 notebook,还是寻求帮助。
在运行开始前捕获问题
常见的错误配置现在会在 SQL 编译时进行前期验证,而不是在执行过程中才失败。缺失 requirements 文件或主 notebook 文件会立即失败,并显示清晰友好的错误,让你能在几秒钟内修复,而不是等待运行崩溃。
全面生动的日志
我们扩展了执行期间发出的日志事件,因此运行历史记录读起来像叙述,而非不透明的流。日志现在涵盖:
- 服务生命周期 — 启动、就绪、进入空闲(可能挂起)、恢复和关闭。
- 内核生命周期 — 创建、删除和创建失败。
- Jupyter 服务器健康——意外退出、自动重启和启动失败。
- 内存压力和 OOM 保护——当内核被停止以回收内存并避免内存不足关闭时,以及当容器超过其内存限制时。
- 结果缓存——诸如单元格结果保存失败等问题。
- 每次运行的标记——清晰的执行开始和结束事件,以及执行前运行的静态验证的通过/失败摘要。
这些事件既显示在交互式日志选项卡中,也显示在计划的运行历史中,并且带有严重级别,以便您在处理问题时可以仅过滤警告和错误。
从运行直接跳到其查询
NPO 运行历史现在包含一个查询 ID 列,并提供指向该执行的查询结果页面的直接链接。从“此运行失败”到精确查询及其详细信息现在只需单击一下即可完成。

试试吧
这里的一切都是对已有功能的增强。下次您在笔记本中时,瞥一眼底栏以查看您的计算状态;下次计划运行不符合预期时,打开其运行历史,您将拥有更多的信息可供使用。
如需深入了解,请参阅工作区中的笔记本文档。
Snowflake 笔记本新功能:更多可见性,更少猜测最初发布于Snowflake Builders 博客:数据工程师、应用开发者、AI 与数据科学在 Medium 上,人们在那里通过突出和回应这个故事来继续对话。
这篇内容对你有用吗?
反馈只用于改善内容筛选,不等同于收藏