开始使用 Streamlit in Snowflake¶
本主题介绍如何创建并运行首个 Streamlit in Snowflake 应用程序。
先决条件¶
在创建 Streamlit 应用程序之前,请确保管理员已完成针对 Streamlit 应用程序的 基本安全设置。
您的角色必须拥有以下权限:
权限 |
对象 |
备注 |
|---|---|---|
USAGE |
在其中创建 Streamlit 应用程序的数据库的权限 |
|
CREATE STREAMLIT
USAGE
|
在其中创建 Streamlit 应用程序的架构的权限 |
|
USAGE |
用于在 Streamlit 应用程序中运行查询的仓库的权限 |
对于仓库运行时应用程序,仓库还会运行应用程序的 Python 代码。 |
USAGE |
运行 Streamlit 应用程序的计算池 |
仅当应用程序使用容器运行时(预览版)时才需要此权限。 |
有关更多信息,请参阅 创建和使用 Streamlit 应用程序所需的权限。
部署首个 Streamlit in Snowflake 应用程序¶
最快速的入门方法是使用默认应用程序文件创建一个 Streamlit 应用程序。当您创建应用程序且未指定源文件时,Snowflake 会自动提供入门代码。
登录 Snowsight。
在导航菜单中,选择 Projects » Streamlit。
选择 + Streamlit App。
输入应用程序的名称。
选择要在其中创建应用程序的数据库和架构。
配置应用程序。
要创建容器运行时应用程序(预览版),请选择以下选项:
选择 Run on container。
选择要在其中运行应用程序的计算池。首选方案是使用专门用于运行 Streamlit 应用程序的计算池。
选择要在其中运行应用程序查询的查询仓库。
要创建仓库运行时应用程序,请选择以下选项:
选择 Run on warehouse。
选择要在其中运行应用程序的仓库。首选方案是使用专门用于运行 Streamlit 应用程序的仓库。
选择 Create。
Snowflake 会使用示例代码创建一个新的 Streamlit 应用程序。Snowsight 将您重定向到应用程序编辑器。您的应用程序将在几秒钟到几分钟内准备就绪,具体时间取决于运行时类型。然后,您可以立即查看并编辑它。
在 SQL 会话中使用首选数据库和架构时,请运行以下 SQL 命令:
创建默认 Streamlit 对象。
要创建容器运行时应用程序(预览版),请执行以下操作:
CREATE STREAMLIT my_first_app RUNTIME_NAME = 'SYSTEM$ST_CONTAINER_RUNTIME_PY3_11' COMPUTE_POOL = my_compute_pool QUERY_WAREHOUSE = my_warehouse;
要创建仓库运行时应用程序,请执行以下操作:
CREATE STREAMLIT my_first_app QUERY_WAREHOUSE = my_warehouse;
这些命令会使用默认起始代码创建一个名为
my_first_app的 Streamlit 应用程序。使应用程序上线:
ALTER STREAMLIT my_first_app ADD LIVE VERSION FROM LAST;
由于 Streamlit 对象使用版本化暂存区,因此您必须先将应用程序代码推送到实时版本位置,然后仅拥有 Streamlit 对象 USAGE 权限的用户才能查看它。
要查看应用程序,请登录 Snowsight。
在导航菜单中选择 Projects » Streamlit,然后选择应用程序。
备注
需要 Snowflake CLI 3.14.0 或更高版本。3.14+ 版本默认使用现代 CREATE STREAMLIT 语法。
初始化一个新的 Streamlit 项目:
snow init my_first_app --template example_streamlit
导航到项目目录:
cd my_first_app
通过编辑
snowflake.yml文件来配置您的应用程序。要创建容器运行时应用程序(预览版),请添加
compute_pool和runtime_name:definition_version: 2 entities: my_streamlit: type: streamlit identifier: my_first_app query_warehouse: my_warehouse compute_pool: my_compute_pool runtime_name: SYSTEM$ST_CONTAINER_RUNTIME_PY3_11 main_file: streamlit_app.py artifacts: - streamlit_app.py
要创建仓库运行时应用程序,请使用默认配置:
definition_version: 2 entities: my_streamlit: type: streamlit identifier: my_first_app query_warehouse: my_warehouse main_file: streamlit_app.py artifacts: - streamlit_app.py
保存
snowflake.yml文件。将应用程序部署到 Snowflake 并在浏览器中打开它:
snow streamlit deploy --open
编辑应用程序¶
有关编辑应用程序的更多信息,请参阅 编辑已部署的 Streamlit 应用程序。
创建应用程序后,您可以编辑代码以对应用程序进行自定义:
登录 Snowsight。
在导航菜单中选择 Projects » Streamlit,然后选择应用程序。
要打开编辑器,请选择 Edit。
在编辑器窗格中,修改
streamlit_app.py文件中的代码。选择 Run 以查看更改。
如果暂存区中有一个或多个已编辑的应用程序文件,您可以使用以下命令通过 COPY FILES 将其复制到应用程序的源位置:
确定应用程序的源位置:
DESCRIBE STREAMLIT my_first_app;
live_version_location_uri值即为应用程序的源位置。将其复制到记事本中,以便在下一步中使用。这是一个 snow URL (snow://)。将文件从内部暂存区复制到应用程序的源位置:
COPY FILES INTO '<live_version_location_uri>' FROM @my_stage FILES = ('streamlit_app.py');
备注
需要 Snowflake CLI 3.14.0 或更高版本。3.14+ 版本默认使用现代 CREATE STREAMLIT 语法。
在本地目录中,在本地项目目录中编辑并保存
streamlit_app.py文件。将更改部署到 Snowflake:
snow streamlit deploy --replace
这将使用新版本覆盖您的整个应用程序。
下一步是什么?¶
既然您已创建了首个应用程序,请探索以下主题以了解更多信息:
管理 Streamlit 应用程序的依赖项:选择使用 时默认使用的角色和仓库。将 Python 包添加到应用程序中。
Streamlit in Snowflake 中的外部网络访问:选择使用 时默认使用的角色和仓库。将应用程序连接到外部服务。