50万奖金+官方证书,深圳国际金融科技大赛正式启动,点击报名 了解详情
写点什么

基于容器运行时的 Snowflake Notebooks:机器学习实验新方式

  • 2025-11-07
    北京
  • 本文字数:1392 字

    阅读完需:约 5 分钟

大小:631.70K时长:03:35
基于容器运行时的 Snowflake Notebooks:机器学习实验新方式

近期我深入体验了在 Web 界面中使用 Snowflake Notebooks 的功能。虽然如今我不常使用笔记本工具,但这次体验令我十分满意——Snowflake 平台的操作便捷性令人欣喜。本文将通过一个实验案例快速介绍如何追踪沙盒 Snowflake 账户中的查询统计信息,该账户是 Chase Romano、Kirk Mason 和我用来做高频测试的账户。本笔记本的目标是计算过去十天内查询历史记录中的总字节扫描量、删除量与写入量。

我们开始吧


我们将在 Snowflake Web 界面(Snowsight)中创建新的容器笔记本。


当前在 Snowsight 中创建笔记本的界面


在 Snowsight 中创建容器笔记本

安装 Ibis 并配置 PyPI 网络访问权限


我们需要安装所需的工作库(本例中为 Ibis)。Snowflake 提供了预定义的托管网络规则 SNOWFLAKE.EXTERNAL_ACCESS.PYPI_RULE 来实现此功能。更多信息建议参阅以下文档:

https://docs.snowflake.com/en/developer-guide/external-network-access/external-network-access-examples#accessing-pypi-to-install-packages-in-snowpark-container


在笔记本环境中,假设已完成网络集成配置,接下来安装带 Snowflake 后端依赖的 Ibis 库。


 在笔记本中安装 Ibis

导入所有依赖项并建立连接


如果之前的安装成功,我们现在应能导入必要模块,并使用 get_active_session 函数连接至 Snowflake,同时让 Ibis 将其引用为连接对象。


倒入及连接设置

编写表达式


我们将对“user_name”、“start_time”、“bytes_scanned”、“bytes_written”和 “bytes_deleted”列进行投影与运算。


以下是对这些表达式实现功能的(尽可能)简化说明:

  • 引用 SNOWFLAKE.ACCOUNT_USAGE.QUERY_HISTORY 视图;

  • 将这些列名转换为小写形式以更符合“Pythonic”风格;

  • 仅提取所需列并通过选择操作重新引用;

  • 根据以下条件筛选查询:由 Chase、Kirk 或我通过“user_name” 列执行的查询、字节相关列任意值大于 0 的查询,以及查询起始时间在最近十日内的记录;

  • 将 start_time 列截断至小时粒度,并在小时级别对字节相关列进行求和。


 Snowflake 笔记本中的列与表表达式


在上述操作中,我们应将延迟处理的字节列运算显式转换为整型。虽然它们本身已是整型,但在生产环境中进行类型转换会更安全。此时,您可能会想到……


 关于直接使用 SQL 的经典迷因


幸运的是,我们确实拥有这个选项,并且能够将其编译为不同方言。


 编译表表达式


需要注意的是,并非所有操作都能被完全编译,因为某些后端可能不支持特定数据类型。例如 Snowflake 支持的 VARIANT 或 ARRAY 等复杂数据类型,可能无法在 SQLite 中直接兼容。

检查工作


Ibis 采用惰性计算模式(默认设置,我们也可启用交互模式),因此我们尚未实际处理底层查询。换言之,我们还未执行该表达式并物化结果。我们可以在笔记本中运行几个单元来预览输出,并将结果物化到 pandas 中进行后续处理。


 预览与描述 Ibis 数据框架及物化至 pandas

结果可视化


现在我需要询问 Kirk 和 Chase 他们近期的工作进展!


 过去 10 天的查询结果

结论


Snowflake 容器笔记本通过将逻辑拆分为列表达式,提供了便捷的数据处理与变更测试方式。您也可以对此进行任务调度,但建议在部署到生产环境前移除部分“交互式”单元。


原文地址:

https://www.linkedin.com/pulse/experimentation-snowflake-notebooks-container-runtime-tyler-white-aznle/?trackingId=4AePY3DER%2BS3l81e4cOEpA%3D%3D



点击链接立即报名注册:Ascent - Snowflake Platform Training - China

2025-11-07 09:3013

评论

发布
暂无评论

Python3 for ... else ...陷阱

wangkx

Python Python PEP

写代码爬取了某 Hub 资源,只为撸这个鉴黄平台!

程序员生活志

教程 Hub 资源

大数据技术发展(二):Hadoop 技术生态圈的发展

cristal

Java 大数据 hadoop hadoop3

云原生架构的基石

soolaugust

Docker 架构 Kubernetes 容器 云原生

草脸识别,AI泡沫还是皇冠明珠?

郭华

人工智能 AI 商业 解决方案

高效程序员的45个习惯:敏捷开发修炼之道(3)

石云升

读书笔记 敏捷开发 无限游戏

nginx报错worker_connections are not enough

Java联盟

nginx

"工科生"的浪漫 百度大脑语言与知识技术峰会在七夕向你发出参会邀请

百度大脑

ST在keil下开发时候文件options配置的一些小技巧

良知犹存

嵌入式

为什么一旦自己创业了,很难再回到公司去坐班?

北柯

创业 互联网 创业心态 上班 上班族

SpreadJS 纯前端表格控件应用案例:集成 Odoo提升企业ERP表格功能

葡萄城技术团队

开源 SpreadJS Odoo

系统不可用总结

不在调上

错误的存储方案正吞噬你的成本

jinjin

有一种自我欺骗,叫只为孩子

zhoo299

随笔杂谈 家庭

四种主要的 IO 模型

一盐难进

Netty io 网络

大厂面试必读,JAVA进阶神书《深入理解Java虚拟机》第三版更新内容全曝光!

华章IT

JVM 虚拟机 周志明 Java虚拟机 jvm调优

丐帮,少林,明教,武当!看看你数据分析的技能属于哪一派?

程序员生活志

2w字 + 40张图带你参透并发编程!

苹果看辽宁体育

Java 后端 并发

“庆俞年”大战,真正受损的不是李国庆

北柯

创业 合伙人 创业者 互联网人 当当网

nginx 报错 accept4 () failed (24:Too many open files)

Java联盟

nginx

吃透Laravel的Ioc容器

书旅

laravel 容器 ioc

搭载十代酷睿i7处理器,这台ROG冰刃4新锐拥有媲美台式游戏电脑的性能

最新动态

学习的深度 & 深度的学习

北风

学习

一个虚拟世界里栽树的公司及其启示

郭华

技术 商业模式 电影

影响音视频延迟的关键因素(一):流媒体系统

ZEGO即构

TCP udp RTC HLS RTMP

跟我一起基于Karma搭建一个测试环境(下)

Jack Q

大前端 测试框架 Karma

《精益创业》摘要

孙苏勇

书摘 精益创业

Spring 为啥默认把bean设计成单例的?这篇讲的明明白白的

程序员生活志

为啥PHP in_array(0,['a', 'b', 'c']) 返回为true?

架构精进之路

php 弱类型语言

一文吃透PHP进程信号处理

书旅

php Linux 信号

Flink所需组件-1

小知识点

scala 大数据 flink 流计算

基于容器运行时的 Snowflake Notebooks:机器学习实验新方式_Snowflake_Tyler White_InfoQ精选文章