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 命令。
有关更多信息,请参阅 使用服务。
服务(包括作业服务)在 计算池 中运行,计算池是一个或多个虚拟机 (VM) 节点的集合。首先,使用 CREATE COMPUTE POOL 命令创建计算池,然后在创建服务或作业服务时指定计算池。创建计算池所需的信息包括:计算机类型、启动计算池要使用的最小节点数,以及计算池可以扩展到的最大节点数。一些受支持的计算机类型会提供 GPU。有关更多信息,请参阅 使用计算池。
您可以使用 服务函数 通过 SQL 查询与服务进行通信。 您可以配置公共端点,以允许从 Snowflake 外部访问服务,并使用 Snowflake 托管的访问控制。Snowpark Container Services 还支持服务到服务的通信。有关更多信息,请参阅 使用服务。
可用区域¶
除以下地区外,所有 地区 均提供 Snowpark Container Services:
Snowpark Container Services 不适用于 Google Cloud Platform (GCP)。
Snowpark Container Services 不适用于 AWS 或 Azure 的政府区域。
下一步是什么?¶
如果您刚开始使用 Snowpark Container Services,我们建议您先浏览教程,然后继续学习其他主题,以了解更多信息并创建自己的容器化应用程序。以下主题提供了更多信息:
教程: 这些 入门教程 提供了探索 Snowpark Container Services 的分步说明。完成初步探索后,您可以继续学习 高级教程。
服务规范参考: 此参考解释了 YAML 语法,以便创建服务规范。
使用服务和作业服务: 这些主题详细介绍了在开发服务和作业服务时使用的 Snowpark Container Services 组件:
参考: Snowpark Container Services 提供以下 SQL 命令和系统函数:
对于 SQL 命令,请参阅 Snowpark Container Services 命令 和 CREATE FUNCTION (Snowpark Container Services)
对于 SQL 函数:SYSTEM$GET_SERVICE_LOGS。
计费: 此主题说明与使用 Snowpark Container Services 相关联的成本: