Einschränkungen und nicht unterstützte Features¶
Unter diesem Thema werden die folgenden Beschränkungen auf Streamlit in Snowflake erläutert:
Nicht unterstützte Streamlit-Features¶
Die folgenden Streamlit-Features werden in Streamlit in Snowflake nicht unterstützt:
-
Die Eigenschaften
page_title
undpage_icon
des Befehls st.set_page_config werden nicht unterstützt. Die folgenden experimentellen Features:
Anker-Links
Beschränkungen beim Laden externer Ressourcen in Streamlit in Snowflake¶
Alle Streamlit in Snowflake-Anwendungen laufen innerhalb der Content Security Policy (CSP), die einschränkt, welche Ressourcen geladen werden können. Snowflake blockiert das Laden von Code von externen Domains, einschließlich Skripten, Stilen, Schriften und Iframe-Einbettung. Das Laden einer Teilmenge von Ressourcen aus Mapbox wird jedoch unterstützt.
Bei Verwendung der Streamlit-Befehle st.map und st.pydeck_chart stellt Mapbox die Kartenkacheln beim Rendern von Karteninhalten bereit. Mapbox ist eine Anwendung eines Drittanbieters und unterliegt den Bedingungen für externe Angebote von Snowflake.
Das Laden von Images oder Medien von externen Domains wird in Streamlit in Snowflake unterstützt, nicht aber in Snowflake Native App Framework.
Der folgende Code wird beispielsweise ohne einen Python-Fehler ausgeführt, aber das Skript wird im Browser nicht geladen oder ausgeführt:
# This will not work
import streamlit.components.v1 as components
components.html("""
<script src="http://www.example.com/example.js"></script>
""", height=0)
CSP blockiert auch Front-End-Aufrufe, die allgemein als unsicher gelten, wie z. B. eval()
.
Bemerkung
App-Entwickler sind für die Sicherheitsprüfungen und die Software-Lieferkette von Streamlit in Snowflake-App-Code gemäß dem Snowflake’s Shared Responsibility Model verantwortlich.
Zusätzliche Streamlit in Snowflake-Beschränkungen¶
Streamlit in Snowflake hat die folgenden zusätzlichen Beschränkungen :
Die Verwendung externer Stagingbereiche wird nicht unterstützt.
Replikation wird nicht unterstützt
Streamlit-Apps haben eine Beschränkung beim Abrufen von Daten.
st.cache_data und st.cache_resource werden nicht vollständig unterstützt.
Mehrseitige Streamlit-Apps werden mit einigen Einschränkungen unterstützt.
Streamlit-Apps haben eine Beschränkung beim Abrufen von Daten¶
Streamlit-Apps, die in Streamlit in Snowflake und in einer Snowflake Native App laufen, haben eine 32MB Grenze für die Datenmenge, die mit einer einzigen Abfrage abgerufen werden kann. Bei Abfragen, die über 32MB hinausgehen, tritt folgender Fehler auf:
MessageSizeError: Data Size exceeds message limit
Um diese Begrenzung zu vermeiden, sollten Sie Ihre Streamlit-Apps so gestalten, dass Daten in kleineren Schritten als 32MB abgerufen werden.
Der Streamlit in Snowflake-Editor unterstützt keine Stagingbereiche mit serverseitiger Verschlüsselung¶
Der Streamlit in Snowflake Editor unterstützt nicht das Erstellen eines STREAMLIT-Objekts aus Dateien in einem benannten Stagingbereich, der serverseitige Verschlüsselung verwendet. In diesem Fall gibt Snowsight einen Fehler zurück.
Streamlit in Snowflake unterstützt nur interne Stagingbereiche, die eine clientseitige Verschlüsselung verwenden.
st.cache_data
und st.cache_resource
werden nicht vollständig unterstützt¶
st.cache_data und st.cache_resource werden in Streamlit in Snowflake nicht vollständig unterstützt. Das Caching funktioniert nur innerhalb einer einzelnen Sitzung. Zwischengespeicherte Werte können nicht auf andere Sitzungen übertragen und von verschiedenen Benutzern einer Streamlit-App gemeinsam genutzt werden.
Mehrseitige Streamlit-Apps werden mit einigen Einschränkungen unterstützt¶
Mehrseitige Streamlit-Apps werden unter Berücksichtigung der folgenden Punkte unterstützt:
Mehrseitige Streamlit-Apps können nur mit SQL-Befehlen erstellt werden. Siehe Streamlit-Apps mit SQL erstellen und bereitstellen.
URLs mit einzelnen Seiten werden nicht unterstützt.
Dateien, die in das Verzeichnis
/pages
hochgeladen werden, sind innerhalb des Verzeichnisses ROOT_LOCATION des benannten Stagingbereichs sichtbar.