了解不同类型的 Streamlit 对象¶
Snowflake 中的 Streamlit 对象有两个重要差异,这会影响它们的功能、限制和管理:
如何指定源位置:使用 ROOT_LOCATION 参数(旧版)或 FROM 参数(推荐)。
运行时环境:仓库运行时或容器运行时(预览版)。
本页介绍了源位置规范之间的差异,这些差异反过来又会影响可以使用的运行时环境。
有关运行时环境的更多信息,请参阅 Streamlit 应用程序的运行时环境。有关从仓库迁移到容器运行时的清单,请参阅 在运行时环境之间迁移。
源位置¶
在 Snowflake 中创建 Streamlit 应用程序时,可以使用两个不同的参数来指定源文件的位置:ROOT_LOCATION 或 FROM。ROOT_LOCATION 是一个有若干限制的旧参数。目前,FROM 是新应用程序的推荐参数,也是访问最新 Streamlit in Snowflake 功能(包括容器运行时)所必需的。本页介绍如何区分这两类应用程序。要启用最新的 Streamlit in Snowflake 功能,您必须升级旧版 Streamlit。有关更多信息,请参阅 在运行时环境之间迁移。
FROM 参数(推荐)¶
FROM 参数将文件从指定位置复制到 Streamlit 对象内的嵌入式暂存区中。这是当前创建 Streamlit 应用程序的推荐方法。
优势:
同时支持仓库和容器运行时。
允许在 Snowsight 中进行多文件编辑。
与 Git 集成功能兼容。
在 Streamlit 对象中使用嵌入式的、带版本的暂存区。
语法:
CREATE STREAMLIT my_app
FROM '@my_stage/app_folder'
MAIN_FILE = 'streamlit_app.py';
ROOT_LOCATION 参数(旧版)¶
ROOT_LOCATION 参数创建一个引用内部暂存区作为其源的应用程序。这是一种传统方法,存在若干限制。如果您使用旧版本的 Snowsight 创建应用程序,应用程序的根位置可能是 snow URL (snow://) 而不是命名暂存区。
限制:
仅支持仓库运行时(无法使用容器运行时)。
在 Snowsight 中不支持多文件编辑。
无法使用 Git 集成功能。
需要持续访问内部暂存区。
语法:
CREATE STREAMLIT my_app
ROOT_LOCATION = '@my_stage/app_folder'
MAIN_FILE = '/streamlit_app.py';
确定应用程序的源位置类型¶
您可以通过检查 DESCRIBE STREAMLIT 的输出来确定创建应用程序时使用的参数:
DESCRIBE STREAMLIT my_app;
基于 ROOT_LOCATION 的应用程序返回较少的列,并包含一个
root_location列。基于 FROM 的应用程序返回较多的列,并包含一个
live_version_location_uri列。
当您在 Snowsight 中编辑应用程序时,您会根据应用程序类型将更新推送到 root_location 或 live_version_location_uri。您可以使用 SQL 命令通过 PUT 或 COPY FILES 到这些位置来更新这两类应用程序。