Snowpark Container Services¶
关于 Snowpark Container Services¶
Snowpark Container Services 是一种完全托管的容器服务,旨在促进 Snowflake 生态系统中容器化应用程序的部署、管理和扩展。此服务使用户能够直接在 Snowflake 中运行容器化的工作负载,确保无需将数据移出 Snowflake 环境进行处理。与 Docker 或 Kubernetes 等传统容器编排平台不同,Snowpark Container Services 提供专门针对 Snowflake 优化的 OCI 运行时执行环境。此集成允许无缝执行 OCI 镜像,并利用 Snowflake 稳健的数据平台。
作为一种完全托管的服务,Snowpark Container Services 简化了运营任务。它按照最佳实践来处理容器管理的复杂性(包括安全性和配置)。这确保了用户可以专心开发和部署应用程序,而无需负担管理底层基础设施的开销。
Snowpark Container Services 与 Snowflake 完全集成。例如,应用程序可以轻松执行以下任务:
连接到 Snowflake 并在 Snowflake 虚拟仓库中运行 SQL。
访问 Snowflake 暂存区中的数据文件。
处理从 SQL 查询发送的数据。
Snowpark Container Services 还与第三方工具集成。它允许您使用第三方客户端(例如 Docker)轻松地将应用程序镜像上传到 Snowflake。无缝集成使团队更容易专注于构建数据应用程序。
您可以跨 Snowflake 区域和云平台运行和扩展应用程序容器工作负载,而无需克服管理控制平面或工作节点的复杂性,并且还能够快速轻松地访问 Snowflake 数据。
Snowpark Container Services 解锁了广泛的一系列新功能,包括以下功能:
创建长时间运行的服务。
使用 GPUs 提高系统的速度和处理能力。
使用各种语言(例如,C++)编写应用程序代码。
将各种库与应用程序一起使用。
这一切都带有 Snowflake 平台的优势,其中最引人注目的是易用性、安全性和治理功能。现在,强大的 Snowflake 数据层旁边多了一个可扩展、灵活的计算层,而且无需将数据移出平台。
它是如何工作的?¶
要在 Snowpark Container Services 中运行容器化的应用程序,除了使用基本 Snowflake 对象(如数据库和仓库)外,还可以使用以下对象:镜像仓库、计算池 和 服务。
Snowflake 提供 镜像注册表,它是一种符合 ` OCIv2 <https://github.com/opencontainers/distribution-spec/blob/main/spec.md (https://github.com/opencontainers/distribution-spec/blob/main/spec.md)> _ 规范的服务,用于存储镜像。这使 OCI 客户端(如 Docker CLI 和 SnowSQL)可以访问 Snowflake 账户中的镜像注册表。通过使用这些客户端,您可以将应用程序镜像上传到 Snowflake 账户中的 *镜像仓库* (存储单元)。有关更多信息,请参阅 :doc:`使用镜像注册表和镜像仓库 <working-with-registry-repository>。
将应用程序镜像上传到镜像仓库后,您可以通过创建长时间运行的 服务 或执行 作业服务 来运行应用程序。
服务运行时间较长,因此,不再需要服务时请明确停止它,就像 Web 服务一样。如果服务容器退出(无论出于何种原因),Snowflake 都会重新启动该容器。要创建服务(例如全栈 Web 应用程序),请使用 CREATE SERVICE 命令。
作业服务的生命周期有限,就像存储过程一样。当所有容器都退出时,作业服务便已完成。Snowflake 不会重新启动任何作业服务容器。要启动作业服务(例如使用 GPUs 训练机器学习模型),请使用 EXECUTE JOB SERVICE 命令。
重要
Snowpark Container Services 作业服务功能目前为非公开预览版,并受预览版条款的约束,详情请访问: ` <https://snowflake.com/legal (https://snowflake.com/legal)> `_。有关更多信息,请联系您的 Snowflake 代表。
有关更多信息,请参阅 使用服务。
服务(包括作业服务)在 计算池 中运行,计算池是一个或多个虚拟机 (VM) 节点的集合。首先,使用 CREATE COMPUTE POOL 命令创建计算池,然后在创建服务或作业服务时指定计算池。创建计算池所需的信息包括:计算机类型、启动计算池要使用的最小节点数,以及计算池可以扩展到的最大节点数。一些受支持的计算机类型会提供 GPU。有关更多信息,请参阅 使用计算池。
您可以使用 服务函数 通过 SQL 查询与服务进行通信。 您可以配置公共端点,以允许从 Snowflake 外部访问服务,并使用 Snowflake 托管的访问控制。Snowpark Container Services 还支持服务到服务的通信。有关更多信息,请参阅 使用服务。
可用区域¶
Snowpark Container Services 目前在所有 AWS 商业 区域 都可用。
适用于 Azure 和 Google Cloud 的非公开预览版将在稍后发布。
下一步是什么?¶
如果您刚开始使用 Snowpark Container Services,我们建议您先浏览教程,然后继续学习其他主题,以了解更多信息并创建自己的容器化应用程序。以下主题提供了更多信息:
教程: 这些 入门教程 提供了探索 Snowpark Container Services 的分步说明。完成初步探索后,您可以继续学习 高级教程。
服务规范参考: 此参考解释了 YAML 语法,以便创建服务规范。
使用服务和作业服务: 这些主题详细介绍了在开发服务和作业服务时使用的 Snowpark Container Services 组件:
参考: Snowpark Container Services 提供以下 SQL 命令和系统函数:
对于 SQL 命令,请参阅 Snowpark Container Services 命令。
计费: 此主题说明与使用 Snowpark Container Services 相关联的成本: