Streamlit in Snowflake 的管理成本

本主题介绍 Streamlit in Snowflake 的计费注意事项。

Streamlit in Snowflake 的计费注意事项

Streamlit in Snowflake 计费基于应用程序的运行时环境和查询仓库。运行时环境用于执行 Streamlit 应用中的 Python 代码,可以是容器或仓库。查询仓库执行应用程序代码中的所有 SQL 查询。

查询仓库

当您的应用程序代码执行 SQL 查询时,这些查询将使用该应用程序的查询仓库。Snowflake 会根据其自身的 AUTO_RESUME 和 AUTO_SUSPEND 值自动恢复和挂起查询仓库。

容器运行时

If your Streamlit app uses a container runtime, you are billed for the usage of the underlying Snowpark Container Services compute pool. In this case, the Streamlit app is a long-running service. The Streamlit server runs continuously on a node of the compute pool, allowing viewers to quickly access the app. Concurrent viewers connect to a single Streamlit server. Only a single app can run on a node in the compute pool; a Streamlit app takes an entire node.

在连续三天没有查看器活动后,Streamlit 服务器进程将终止,Snowflake 会根据其自身的 AUTO_SUSPEND 值挂起计算池。如果您尝试在没有新查看器连接的情况下保持会话活动三天,应用程序可能会被暂停。最佳实践是将长时间运行的计算迁移到其他服务。有关计算池计费的更多信息,请参阅 了解计算成本

仓库运行时

如果应用程序使用仓库运行时,Snowflake 会在有人访问应用程序时恢复应用程序的代码仓库。每次查看者连接到应用时,都会在代码仓库中启动一个新的 Streamlit 服务器进程,并建立一个 WebSocket 连接。每个并发查看者都连接到各自独立的 Streamlit 服务器,这些服务器均运行在同一个代码仓库中。

一个 WebSocket 连接会保持代码仓库处于活动状态,并在关联查看者最后一次活动后约 15 分钟过期。但是,这可能会受到查看者的浏览器设置和活动的影响。在应用上的鼠标移动被视为活动,可保持 WebSocket 连接处于活跃状态。您可以通过联系 Snowflake 支持部门来更改账户的 WebSocket 超时值。

代码仓库按其活动时间计费。要节省 Credit,您可以执行下列操作之一:

  • 从 Snowsight 中手动暂停应用程序。

  • 关闭所有运行该应用的浏览器标签页,或导航离开该应用。这将关闭 WebSocket 连接并允许仓库自动暂停。

  • 为应用程序设置自定义睡眠计时器。这会在指定的非活动时间段后自动暂停仓库。有关更多信息,请参阅 为 Streamlit 应用程序自定义睡眠计时器

有关选择仓库的准则,请参阅 选择 Streamlit in Snowflake 资源的准则

语言: 中文