某些限制和不支持的功能

注意

此功能适用于 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.mapst.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_titlepage_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/)>`_。

语言: 中文