某些限制和不支持的功能¶
注意
此功能适用于 AWS、Microsoft Azure 和 GCP 区域 的账户。不支持 AWS PrivateLink 和 :doc:` Azure 专用链接 </user-guide/privatelink-azure>`。
本主题介绍有关 Streamlit in Snowflake 的限制。它还列出了不受支持的 Streamlit 功能。
使用 Streamlit in Snowflake 时的账户限制¶
Streamlit in Snowflake 具有以下账户限制:
您的 Snowflake 账户必须位于 Amazon Web Services (AWS)、Microsoft Azure 或 Google Cloud Platform (GCP) 区域中。
支持 FedRAMP 的 US 政府区域中的账户目前不受支持。
不支持使用 AWS PrivateLink 或 :doc:` Azure 专用链接</user-guide/privatelink-azure>`。
使用 Streamlit in Snowflake 时的其他限制¶
以下部分介绍使用 Streamlit in Snowflake 时的其他限制。
Streamlit 应用程序的数据限制¶
对于在 Streamlit in Snowflake 和 Snowflake Native App 中运行的 Streamlit 应用程序,从单个查询中检索的数据量不能超过 32MB。超过 32MB 的查询会引发以下错误:
MessageSizeError: Data Size exceeds message limit
要避免此限制,请将 Streamlit 应用程序设计为以小于 32MB 的增量检索数据。
Streamlit in Snowflake 编辑器不支持具有服务器端加密的暂存区¶
Streamlit in Snowflake 编辑器不支持从使用服务器端加密的命名暂存区上的文件 创建 STREAMLIT 对象。在这种情况下, Snowsight 会返回错误。
在 Streamlit in Snowflake 中使用 st.map
和 st.pydeck_chart
时的限制¶
使用 ` st.map <https://docs.streamlit.io/sis/library/api-reference/charts/st.map (https://docs.streamlit.io/sis/library/api-reference/charts/st.map)>`_ 或 st.pydeck_chart (https://docs.streamlit.io/sis/library/api-reference/charts/st.pydeck_chart) Streamlit 命令时,Mapbox 会在渲染地图内容时提供地图图块。Mapbox 是第三方应用程序,受Snowflake的 外部产品条款 的约束。
多页面 Streamlit 应用程序¶
支持多页面 Streamlit 应用程序,但需要注意以下事项:
只能使用 SQL 命令创建多页面 Streamlit 应用程序。请参阅 使用 SQL 创建 Streamlit 应用程序。
不支持单个页面 URLs。
上传到
/pages
目录的文件在命名暂存区的 ROOT_LOCATION 中可见。
某些 Snowflake 上下文函数返回空字段或 NONE¶
在 Streamlit in Snowflake 中使用时,以 CURRENT_ (CURRENT_*) 开头的 Snowflake :doc:` 上下文函数 </sql-reference/functions-context>` 会返回空字段或 NONE。
如果您需要在应用程序中使用 CURRENT_USER 执行个性化、日志记录或数据筛选,请改用 ` st.experimental_user <https://docs.streamlit.io/SiS/library/api-reference/personalization/st.experimental_user (https://docs.streamlit.io/SiS/library/api-reference/personalization/st.experimental_user)>`_。
不支持自定义组件¶
不支持自定义组件。
不支持集成版本控制或 CI/CD 系统¶
Streamlit 应用程序未与版本控制系统相集成。应用程序历史记录或代码更改均为永久性,无法回滚。
没有与 GitHub、GitLab 或其他版本控制供应商的集成。
应用程序编辑可通过应用程序查看器查看¶
如果开发者在编辑时运行 Streamlit 应用程序,所做的变更将变为实时,并立即可在应用程序查看器中查看。
不支持复制¶
Streamlit in Snowflake 应用程序不支持复制。
不支持的 Streamlit 功能¶
在 Streamlit in Snowflake 中不支持以下 Streamlit 功能:
` st.file_uploader <https://docs.streamlit.io/library/api-reference/widgets/st.file_uploader (https://docs.streamlit.io/library/api-reference/widgets/st.file_uploader)>`_
` st.cache_data <https://docs.streamlit.io/library/api-reference/performance/st.cache_data (https://docs.streamlit.io/library/api-reference/performance/st.cache_data)>`_
` st.cache_resource <https://docs.streamlit.io/library/api-reference/performance/st.cache_resource (https://docs.streamlit.io/library/api-reference/performance/st.cache_resource)>`_
` st.camera_input<https://docs.streamlit.io/library/api-reference/widgets/st.camera_input (https://docs.streamlit.io/library/api-reference/widgets/st.camera_input)>`_
` st.bokeh_chart<https://docs.streamlit.io/library/api-reference/charts/st.bokeh_chart (https://docs.streamlit.io/library/api-reference/charts/st.bokeh_chart)>`_
` st.scatter_chart <https://docs.streamlit.io/library/api-reference/charts/st.scatter_chart (https://docs.streamlit.io/library/api-reference/charts/st.scatter_chart)>`_
` st.set_page_config <https://docs.streamlit.io/library/api-reference/utilities/st.set_page_config (https://docs.streamlit.io/library/api-reference/utilities/st.set_page_config)>`_
不支持 ` st.set_page_config <https://docs.streamlit.io/library/api-reference/utilities/st.set_page_config (https://docs.streamlit.io/library/api-reference/utilities/st.set_page_config)>`_ 命令的
page_title
和page_icon
属性。` 自定义组件 <https://docs.streamlit.io/library/components (https://docs.streamlit.io/library/components)>`_,包括:
` component.html() <https://docs.streamlit.io/library/components/components-api#stcomponentsv1html (https://docs.streamlit.io/library/components/components-api#stcomponentsv1html)>`_
` component.iframe() <https://docs.streamlit.io/library/components/components-api#stcomponentsv1iframe (https://docs.streamlit.io/library/components/components-api#stcomponentsv1iframe)>`_
` 自定义主题 <https://docs.streamlit.io/library/advanced-features/theming (https://docs.streamlit.io/library/advanced-features/theming)>`_
` 配置文件 <https://docs.streamlit.io/library/advanced-features/configuration (https://docs.streamlit.io/library/advanced-features/configuration)>`_
以下实验性功能:
` st.experimental_set_query_params <https://docs.streamlit.io/library/api-reference/utilities/st.experimental_set_query_params (https://docs.streamlit.io/library/api-reference/utilities/st.experimental_set_query_params)>`_
` st.experimental_get_query_params<https://docs.streamlit.io/library/api-reference/utilities/st.experimental_get_query_params (https://docs.streamlit.io/library/api-reference/utilities/st.experimental_get_query_params)>`_
在 ` st.markdown <https://docs.streamlit.io/library/api-reference/text/st.markdown (https://docs.streamlit.io/library/api-reference/text/st.markdown)>`_ 中,不支持使用
unsafe_allow_html=True
的不安全 HTML。通过互联网访问网络
锚定链接
Streamlit in Snowflake 故障排除¶
在使用 Streamlit in Snowflake 时,以下场景可以帮助您解决可能发生的问题。
您不能加载 Streamlit 应用程序¶
在 Streamlit in Snowflake 中运行的每个 Streamlit 应用程序都使用唯一的子域。
确保 *.snowflake.app
位于网络的允许列表中,并且可以连接到 Snowflake。当此域列入允许列表时,您的应用程序可以不受任何限制地与 Snowflake 服务器通信。
Streamlit in Snowflake 使用 WebSockets。必须确保在网络配置中没有阻止 WebSockets。
错误 |
Could not reload streamlit files.
Error: 092806 (P0002): The specified Streamlit was not found.
|
---|---|
原因 |
Snowflake WebSocket 连接无法连接到与应用程序关联的端点。 |
解决方案 |
将 :emph:` * .snowflake.app ` 添加到组织防火墙配置的允许列表中。 |
您无法访问外部 API¶
要访问外部 API,必须创建指定外部访问集成的 UDF,然后在 Streamlit 应用程序中调用该 UDF。有关更多信息,请参阅 在函数或过程中使用外部访问集成。
您无法查看数据或更改数据库¶
您可能无法查看数据或更改数据库、仓库或角色,因为 Streamlit 应用程序使用所有者权限运行,这意味着它们在运行的时候会使用所有者的权限,而不是调用者的权限。Streamlit 应用程序使用在其中创建了 Streamlit in Snowflake 应用程序的数据库和架构,而非调用者当前使用的数据库和架构。
有关更多信息,请参阅 了解所有者的权限和 Streamlit in Snowflake 应用程序。
Streamlit 库功能不起作用¶
确保使用 Streamlit in Snowflake 支持的 Streamlit 库版本和功能。有关更多信息,请参阅 受支持的 Streamlit 库版本 和 不支持的 Streamlit 功能。
有关为 Streamlit 应用程序编写代码的支持,请参阅 ` Streamlit 社区论坛 <https://discuss.streamlit.io/ (https://discuss.streamlit.io/)>`_。