Lernpfad
Snowflake ist eine beliebte und leistungsstarke Cloud-basierte Datenplattform, und Streamlit ist ein Open-Source-Python-Framework, das zum Erstellen von Daten-Webanwendungen entwickelt wurde. Streamlit in Snowflake (SiS) ist eine integrierte Lösung, mit der du Daten-Apps direkt im Snowflake-Umfeld erstellen und bereitstellen kannst. Anstatt mit verschiedenen Tools rumzuspielen, kannst du Python und die Infrastruktur von Snowflake nutzen, um schnell interaktive Anwendungen zu erstellen.
In diesem Tutorial erfährst du, was Streamlit in Snowflake ist, welche Hauptfunktionen es hat, wie du es einrichtest, welche Bereitstellungsstrategien es gibt, wie es mit Sicherheit und Leistung aussieht und wie es in der Praxis genutzt wird. Am Ende hast du einen klaren Plan, wie du deine erste Daten-App entwickeln und starten kannst. Schau dir unbedingt die die Grundlagen von Snowflake und die Benutzeroberfläche. Ich empfehle auch, Streamlit in Python außerhalb von Snowflake auszuprobieren, um seine Funktionen mit diesem Streamlit-Tutorial.
Was ist Streamlit in Snowflake?
Mit Streamlit in Snowflake kannst du interaktive Anwendungen erstellen, die direkt mit deinen Snowflake-Daten verbunden sind, ohne die Plattform verlassen zu müssen.
Überblick über Streamlit in Snowflake
Streamlit in Snowflake bringt die Einfachheit von Streamlit mit der Skalierbarkeit von Snowflake zusammen. Früher brauchte man für die Entwicklung von Apps externe Server, APIs und komplizierte Integrationen. Streamlit reduziert die Kernfunktionalität auf ein paar objektorientierte APIs und Python-Integrationen. Die Bereitstellung wird dann mit Snowsight auf Snowflake übertragen.
Dadurch brauchst du keine zusätzliche Infrastruktur und kriegst eine einheitliche Umgebung, die sich nahtlos mit Snowpark, Cortex AI und deinen Snowflake-Daten verbindet. Das heißt, Python-Entwickler und Datenteams arbeiten mit derselben Quelle, ohne dass sie sich um die Übertragung von Daten oder Code kümmern müssen.
Historischer Hintergrund
2022 hat Snowflake Streamlit übernommen, um die Entwicklung interaktiver Apps näher an Unternehmensdaten heranzubringen. Es hält an der Open-Source-Vision von Streamlit fest, Entwicklern die Möglichkeit zu geben, mit Python coole Web-Apps zu erstellen und diese gleichzeitig in eine der leistungsstärksten Datenplattformen zu integrieren, die es gerade gibt. Damit können Unternehmen Streamlit flexibel nutzen, ohne sich so viele Gedanken um die Sicherheit machen zu müssen, und die App-Entwicklung wird vereinheitlicht.
Grundphilosophie
Die Idee von SiS ist, dass du die gleiche Sicherheit und Kontrolle wie bei Snowflake hast, aber trotzdem ganz einfach mit Streamlit Daten-Web-Apps erstellen kannst. Da alle Daten in Snowflake bleiben, hast du die gleichen Sicherheitsgarantien, die du erwarten würdest.
Der größte Vorteil ist, dass das Python-Framework gleich bleibt und auf Snowflake die gleiche Erfahrung bietet wie außerhalb von Snowflake. Das sollte SiS für Entwickler zugänglich machen, die schon mal mit Streamlit gearbeitet haben oder sogar Python-Kenntnisse haben und ihre vorhandenen Fähigkeiten nutzen wollen, um Web-Apps für Snowflake-Daten zu entwickeln.
Streamlit in Snowflake – Wichtigste Funktionen und Möglichkeiten
Streamlit in Snowflake hat die wichtigsten Cloud-Features von Snowflake, wie zum Beispiel die vollständige Verwaltung und einfache Zusammenarbeit. Es hat auch die Funktionen von Streamlit für Visualisierung und schnelle Iteration und ist gleichzeitig in die Infrastruktur eingebaut.
Komplett verwalteter Service
Snowflake kümmert sich um die ganze Infrastruktur im Hintergrund, sodass du dir keine Gedanken über Server, Skalierung oder Stabilität machen musst. Die Anwendungen laufen in Echtzeit, passen sich automatisch an die Nutzung an und nutzen die eingebaute Zuverlässigkeit von Snowflake.
Integration mit der Snowflake-Infrastruktur
Streamlit-Apps in Snowflake verbinden sich direkt mit Snowpark, Cortex AI und Datenbanken. Du kannst zum Beispiel den Cortex AI Analyst in deine Streamlit-App einbauen, damit die Nutzer Fragen in natürlicher Sprache zu den Daten stellen und die Antworten direkt im Dashboard sehen können.
Andere Funktionen von Snowflake, wie das integrierte Caching, reduzieren unnötige Abfragen, während Verbesserungen an der Benutzeroberfläche, wie der Dunkelmodus und benutzerdefinierte Komponenten, das Nutzererlebnis verbessern. Die Authentifizierung und sichere Verbindungen werden automatisch über die Authentifizierungsprotokolle von Snowflake abgewickelt. Die Sensibilität von Daten kann mit den rollenbasierten Kontrollen von Snowflake geregelt werden.
Das macht die Datenverwaltung einfacher und lässt Entwickler sich voll auf die Entwicklung von Tools konzentrieren.
Interaktive Visualisierungen und schnelle Iteration
Eine der größten Stärken von Streamlit ist, dass man ein einfaches Python-Skript in wenigen Minuten in eine interaktive App verwandeln kann. In Snowflake kannst du Apps direkt in der Vorschau anzeigen und iterieren, den Code aktualisieren und die Ergebnisse live sehen, ohne auf langwierige Bereitstellungen warten zu müssen.
Teilen und zusammenarbeiten
Streamlit-Apps können direkt mit Leuten in Snowflake geteilt werden. So kannst du die App ganz einfach mit verschiedenen Teams teilen, indem du Rollen oder einzelne Mitglieder nutzt. Die Zusammenarbeit ist in den Arbeitsablauf eingebaut, sodass mehrere Teammitglieder gemeinsam an Apps arbeiten, sie testen und bereitstellen können.
Erste Schritte mit Streamlit in Snowflake
Der Einstieg in SiS ist super einfach, und du kannst deine erste App in wenigen Minuten erstellen. Wir müssen nur sicherstellen, dass du die richtigen Berechtigungen und Kenntnisse hast.
Was du brauchen solltest
Um eine Streamlit-App in Snowflake zu erstellen, brauchst du ein aktives Snowflake-Konto mit Zugriff auf Snowsight, die Webschnittstelle. Das ist Einführung in Snowflake zeigt dir, wie du dich in Snowsight zurechtfindest. Du solltest Grundkenntnisse in Python haben. Es könnte sich sogar lohnen, diesen Einführungskurs in Python durchzugehen, um deine Kenntnisse aufzufrischen.
Sobald du Zugang zu Snowflake hast, stell sicher, dass du die folgenden Berechtigungen hast:
- Datenbankberechtigungen:
USAGE - Schema-Berechtigungen:
USAGE,CREATE STREAMLIT,CREATE STAGE
Einrichtung des Kontos und Konfiguration der Umgebung
Melde dich erst mal bei Snowsight an und such oder erstelle eine Datenbank und ein Schema, wo deine App laufen soll. Geh zuerst auf My Workspace und öffne eine neue SQL-Datei. Lass uns eine Rolle namens „ streamlit_creator ” erstellen, die Zugriff auf unsere „ streamlit_schema ” auf unserem „ streamlit_database ” hat. Außerdem machen wir ein Warehouse namens „ streamlit_wh “, das die Hauptrechenquelle für unsere Streamlit-App sein wird.
CREATE ROLE streamlit_creator;
CREATE DATABASE streamlit_db;
USE DATABASE streamlit_db;
CREATE SCHEMA streamlit_schema;
CREATE WAREHOUSE streamlit_wh WITH WAREHOUSE_SIZE = ‘XSMALL’;
GRANT USAGE ON SCHEMA streamlit_db.streamlit_schema TO ROLE streamlit_creator;
GRANT USAGE ON DATABASE streamlit_db TO ROLE streamlit_creator;
GRANT USAGE ON WAREHOUSE streamlit_wh TO ROLE streamlit_creator;
GRANT CREATE STREAMLIT ON SCHEMA streamlit_db.streamlit_schema TO ROLE streamlit_creator;
GRANT CREATE STAGE ON SCHEMA streamlit_db.streamlit_schema TO ROLE streamlit_creator;

Erstelle deine erste Streamlit-App
Um das zu verdeutlichen, schauen wir uns mal eine einfache App an. Sobald dein Snowflake-Konto eingerichtet und die Berechtigungen festgelegt sind, gehst du in Snowsight zu „ PROJECTS “ (Erweiterte Einstellungen) >> „ Streamlit “ (Erweiterte Einstellungen). Klick in diesem Fenster oben rechts auf „ + Streamlit App “.

Gib einen beliebigen Namen für die App ein. Aktualisiere den Standort der App, um STREAMLIT_DB und STREAMLIT_SCHEMA zu nutzen. Dann klick auf „Run on warehouse“ und wähl „STREAMLIT_WH“ als „ App Warehouse “ aus.

Damit öffnest du den Editor. Das kommt standardmäßig mit einem kleinen Skript. Außerdem wird die App automatisch gestartet und du bekommst eine Vorschau zu sehen.

Versuchen wir mal, ein paar eigene Daten, die uns interessieren, zur App hinzuzufügen. Fügen wir diesen kleinen Ausschnitt am Ende unseres bestehenden Codes ein:
from snowflake.snowpark.functions import sum as sf_sum
st.title("Simple Sales Dashboard")
st.write("This app displays sales by part using Snowflake data.")
# Query sample dataset
df = (
session.table("SNOWFLAKE_SAMPLE_DATA.TPCH_SF1.LINEITEM")
.group_by("L_PARTKEY")
.agg(sf_sum("L_QUANTITY").alias("TOTAL_SALES"))
.limit(10)
.order_by("TOTAL_SALES", ascending=False)
.to_pandas()
)
# Plot chart
st.bar_chart(data=df, x="L_PARTKEY", y="TOTAL_SALES")
# Show table
st.dataframe(df)
Dann klick oben rechts auf den „Ausführen“-Button. Die Vorschau in dieser App aktualisiert und verarbeitet die Daten aus der Beispiel-Tabelle. Es sollte sowohl eine Datentabelle als auch ein Balkendiagramm angezeigt werden. Von hier aus kannst du die Abfragen anpassen, Filter hinzufügen oder die Benutzeroberfläche mit Streamlit-Widgets verbessern.

Was dir hier auffallen wird, ist die Verwendung von Snowpark. Falls du es noch nicht benutzt hast: Snowpark ist die Bibliothek von Snowflake, mit der du Snowflake-Daten mit Programmiersprachen wie Python bearbeiten kannst. Ich empfehle dir diese Einführung in Snowpark echt, weil man oft Snowpark braucht, um Daten in Streamlit zu laden und mit deinen Snowflake-Datenbanken zu verbinden.
Strategien und Methoden für die Bereitstellung
Es gibt ein paar verschiedene Möglichkeiten, Streamlit in Snowflake einzusetzen. Am einfachsten geht's mit Snowsight, der Webschnittstelle, aber du kannst auch Tools für die Befehlszeilenschnittstelle (CLI) nutzen. Außerdem kannst du Workflow-Tools hinzufügen, die dir bei der Projektorganisation und Skalierung deiner Bereitstellung helfen.
Einsatz von Snowsight
Wie im letzten Abschnitt gezeigt, geht's am einfachsten über Snowsight, die Webschnittstelle von Snowflake. Der zusätzliche Vorteil hier ist die geteilte Bildschirmansicht, mit der du deine App in Echtzeit bearbeiten und in der Vorschau anzeigen kannst. Diese Konfiguration ist super für Entwickler, die während der Entwicklung sofort Feedback haben wollen.
CLI-Bereitstellung
Für fortgeschrittenere Szenarien kannst du mit CLI-Tools Apps programmgesteuert bereitstellen. Das ist besonders praktisch, wenn man die App-Bereitstellung in CI/CD-Pipelines (Continuous Integration und Continuous Delivery) einbaut. Durch einen strukturierteren Entwickleransatz können Apps in Projektordnern als „ .py “-Dateien wie normale Streamlit-Apps gespeichert werden, zusammen mit „ .yml “-Dateien, die alle Umgebungen und Snowflake-Befehle steuern. Das heißt, wir können GitHub nutzen, um Änderungen zu verfolgen, automatische Checks durchzuführen und nahtlos zu implementieren.
Integration mit dbt und Workflow-Tools
Eine andere Möglichkeit ist, Streamlit-Apps mit Workflow-Tools wie dbt (Data Build Tool) zu kombinieren, die Snowflake natürlich unterstützt. Zum Beispiel kann dbt deinen zentralen ETL-Workflow verwalten, der in deine Streamlit-App fließt. Innerhalb desselben dbt-Projekts kannst du Streamlit nach Bedarf automatisch neu bereitstellen, um es an deinen dbt-Workflow anzupassen. So kannst du komplexe Datenabläufe ordentlich in Projekten organisieren und deine Bereitstellung entsprechend deinem Arbeitsablauf anpassen.
Architektur und technische Umsetzung
Lass uns mal darüber reden, wie Streamlit in Snowflake eigentlich funktioniert.
Technische Architektur
Streamlit in Snowflake-Apps läuft in einer sicheren, containerbasierten Umgebung, die komplett von Snowflake verwaltet wird. Dieses Design sorgt dafür, dass Anwendungen isoliert bleiben und gleichzeitig eine sichere Verbindung zu den Datenquellen und Diensten von Snowflake aufrechterhalten wird. Wenn deine App immer komplexer wird oder die Datenbank größer wird, kümmert sich Snowflake um die Skalierung im Hintergrund.
Lagerverwaltung
Wenn du eine App startest, braucht sie Rechenressourcen aus deinem konfigurierten Warehouse. Genau wie bei deinen SQL-Abfragen beeinflusst die Größe des Lagers sowohl die Leistung als auch die Kosten, daher ist die Ressourcenplanung wichtig. Entwickler finden es praktisch, ein Lager mit ihren Streamlit-Apps zu verbinden, um die Nachverfolgung einfacher zu machen. Außerdem nutzt Snowflake interne Stufen für die sichere Dateispeicherung, was verhindert, dass Daten außerhalb der Plattform verloren gehen. Das macht es einfacher, Daten in deine App einzuspielen, und sorgt gleichzeitig dafür, dass deine Daten sicher bleiben.
Python-Pakete und -Umgebung
Die Python-Umgebungen in SiS werden aus Sicherheitsgründen verwaltet und gepflegt. Es sind nur genehmigte Pakete verfügbar, und die Installation externer Pakete ist eingeschränkt. Außerdem sind ein paar Sachen wie Skripte, Styles, Schriftarten und die Einbettung von iframes aus Sicherheitsgründen eingeschränkt. Wenn du Funktionen brauchst, die über die bereitgestellten hinausgehen, musst du diese möglicherweise über Snowpark-UDFs implementieren oder auf vorhandene Python-Bibliotheken zurückgreifen, die von Snowflake unterstützt werden.
Sicherheitsmodell und Berechtigungen
Zum Glück nutzt SiS viele der vorhandenen Sicherheitsfunktionen von Snowflake, wie zum Beispiel rollenbasierte Zugriffskontrolle, Freigabe und Netzwerksicherheit.
Rollenbasierte Zugriffskontrolle (RBAC)
Snowflake nutzt ein rollenbasiertes Zugriffskontrollsystem (RBAC) für Streamlit-Apps und deren Daten. Um auf die Daten zugreifen zu können, brauchst du für jede Streamlit-App und die dazugehörigen Daten die Berechtigung „ USAGE “. Nur Rollen mit „ CREATE STREAMLIT “-Rechten können Apps erstellen, und die Eigentumsrechte an Apps hängen von den Berechtigungen auf Schemaebene ab. So bleibt klar, wer Apps entwickeln und verwalten darf.
Freigabe und Zugriffskontrolle
Die App-Freigabe wird genauso geregelt. Du kannst den Zugriff auf Apps je nach Benutzerrolle erlauben oder einschränken. Für die SQL-Ausführung gelten die gleichen rollenbasierten Berechtigungen. Es führt SQL über die Streamlit-App aus und lässt Entwickler keine SQL-Abfragen auf Datenbanken ohne die richtigen Berechtigungen machen.
Netzwerk- und Inhaltssicherheit
Auf der Netzwerkseite hält sich Snowflake an strenge Content Security Policies (CSP). Die verhindern, dass Apps nicht genehmigte externe Skripte, Stile oder Ressourcen laden, und verringern so das Risiko von Datenexfiltration oder unsicheren Integrationen. Indem man die Anzahl der externen Bibliotheken, die in die Umgebung importiert werden, auf ein Minimum reduziert, verringert man das Risiko von Sicherheitslücken und schützt die Privatsphäre der Daten und der Nutzer.
Snowflake Streamlit Leistungsoptimierung
Wenn deine App immer komplexer wird, ist es wichtig, sie richtig zu optimieren, damit sie gut funktioniert.
Abfrageoptimierung und Zwischenspeicherung
Effiziente Apps zu entwickeln, braucht Aufmerksamkeit sowohl für Abfragen als auch für Rechenressourcen. Es ist hilfreich, deine Abfragen außerhalb deiner Streamlit-App (in einem ähnlichen Warehouse) zu testen, um den Rechenaufwand deiner Abfrage zu verstehen. Das Schreiben optimierter SQL-Abfragen ist wichtig, um Engpässe zu vermeiden.
Die integrierten Caching-Funktionen von Streamlit st.cache_data und st.cache_resource helfen dabei, wiederholte Berechnungen und das erneute Laden von Daten zu reduzieren. Allerdings gibt's einen Haken: st.cache_data und st.cache_resource werden nicht komplett unterstützt. Sie erlauben nur Caching auf Sitzungsbasis, was bedeutet, dass jedes Mal, wenn der Benutzer eine neue Sitzung öffnet, die Abfrage und die Daten neu geladen werden müssen. Denk daran und optimier deine Abfragen so gut es geht.
Lagerauswahl und -konfiguration
Die Auswahl des Lagers ist echt wichtig für die Reaktionsfähigkeit der App. Größere Lagerhallen machen die Abläufe schneller, kosten aber auch mehr. Für Apps mit viel Traffic sind eigene Lager vielleicht die beste Lösung. Leichte Apps können dagegen oft auf kleineren Servern laufen, ohne dass es Probleme mit der Leistung gibt.
Anwendungsarchitektur
Auch die Anwendungsarchitektur ist wichtig. Progressives Laden von Daten und Statusverwaltung können Apps reaktionsschneller machen, vor allem wenn man mit großen Datensätzen arbeitet. Lade nicht die ganze App auf einmal, wenn sie mehrere Teile hat. Lade nur das, was der Nutzer gerade braucht. Wenn du Apps mit Blick auf Ressourcenbeschränkungen entwickelst, vermeidest du Probleme wie das Erreichen von Nachrichtengrößen- oder Speichergrenzen.
Anwendungsfälle und Beispiele für Streamlit in Snowflake
Streamlit in Snowflake kann über einfache Dashboards und Daten-Apps hinaus ein paar echt starke Tools für maschinelles Lernen, KI, Business Intelligence und NLP nutzen. Schauen wir uns mal ein paar Anwendungsfälle an.
Business Intelligence und Datenvisualisierungen
Für Analyseteams ist Streamlit in Snowflake eine Möglichkeit, interaktive Dashboards und Reporting-Tools zu erstellen. Wenn du mit deinen Snowflake-Datenbanken verbunden bist, kannst du Dashboards in Echtzeit aktualisieren, was dir hilft, bessere Entscheidungen zu treffen. Du kannst ähnliche Apps, die auf verschiedene Abteilungen und Teams zugeschnitten sind, schnell und einfach bereitstellen. Beispiele sind Inventar-Tracker, Dashboards zur Rechenleistung oder Zusammenfassungen der Führungsleistung. Zum Beispiel können wir mit Snowflake Cortex und Snowpark eine Callcenter-Analyse in die Streamlit-App einbauen. Snowflake Cortex und Snowpark in die Streamlit-App integrieren, indem wir Transkriptionen von Anrufdaten nehmen und Analysen zu Anrufen erstellen.
Maschinelles Lernen und KI
Um deine Daten wirklich zu nutzen, können Streamlit-Apps für maschinelles Lernen und KI-Erkenntnisse entwickelt werden. Zum Beispiel können Machine-Learning-Teams interaktive Apps einsetzen, die Modelle für die Nachfrageprognose, Kundensegmentierung oder Anomalieerkennung bereitstellen. Mit Cortex AI können Entwickler auch Apps für die erweiterte Generierung von Suchergebnissen (RAG) oder dialogorientierte KI-Tools erstellen. Eine coole Implementierung fügt PyTorch-Modelle hinzu, die Kunden gezielte Upsells basierend auf ihren individuellen Profilen bieten, und das alles in einer visuellen Inferenz-App zusammengefasst.
NLP und fortgeschrittene Analytik
Um Einblicke in textbasiertes Feedback wie Chats und E-Mails zu bekommen, ist die Verarbeitung natürlicher Sprache der richtige Weg. Mit Bibliotheken wie spaCy, NLTK oder Snowflake’s internem Cortex AI-Textverarbeitungkönnen wir all diese Textinfos nutzen und Tools für die Sentimentanalyse, die Erkennung benannter Entitäten und andere NLP-Lösungen entwickeln. Wir können zum Beispiel Snowflake Cortex nutzen, um den Großteil der NLP-Analyse zu erledigen, wie Zusammenfassungen und Stimmungsanalysen. Das Ganze landet dann in einer Datenbank, die Analysen zu Bewertungen und Support-Chats mit Streamlit in Snowflake.
Anwendungen zur Datenerfassung und -eingabe
Streamlit-Apps eignen sich auch super für die Datenerfassung und das Qualitätsmanagement, zum Beispiel als Anmerkungstools oder Schnittstellen für die gemeinsame Eingabe. Obwohl der Daten-Upload auf 200 MB begrenzt ist, können wir einen Ort bereitstellen, an dem Nutzer kleine Datensätze oder Dokumente hochladen können, um sie in unserer App zu verarbeiten oder zusammenzufassen. Die Möglichkeiten sind echt unbegrenzt!
Integration mit dem Snowflake-Ökosystem
Streamlit in Snowflake zu haben, ist echt cool, weil du so viele Integrationen im Ökosystem wie Snowpark und Datenaustausch nutzen kannst.
Integration mit Snowpark
Mit Snowpark ist es echt einfach, Analysen in Python mit Snowflake zu machen. Es macht fortgeschrittene Datenverarbeitung, verteilte Berechnungen und benutzerdefinierte Funktionen möglich. Da wir Snowpark-DataFrames direkt in unserer Streamlit-in-Snowflake-App nutzen können, ist das ganz einfach und ohne großen Aufwand möglich. Mit dem Snowpark-Objekt „ udf“ ist es echt einfach, Sachen wie gespeicherte Prozeduren und UDFs in deiner Snowflake-Umgebung zu nutzen.
Datenaustausch und Automatisierung
Das Teilen von Daten in Snowflake ist echt einfach und mit der Snowsight-Benutzeroberfläche geht's mit nur ein paar Klicks. Durch das Hinzufügen von Snowflake-Aufgaben und ereignisgesteuerten Funktionen können Entwickler Workflows auch ganz einfach automatisieren. Du kannst zum Beispiel App-Updates starten, wenn neue Daten reinkommen, Datenchecks machen, um sicherzugehen, dass alles funktioniert, und die Daten aktuell halten.
Zusammen mit dbt kannst du durchgängige Workflows erstellen, bei denen Daten direkt in Streamlit-Apps fließen, sodass die Nutzer immer auf dem neuesten Stand sind.
Überlegungen zu Abrechnung und Kosten
Wie bei allen Cloud-Plattformen sind Abrechnungs- und Kostenaspekte wichtig. Eine teure Streamlit-App wird wahrscheinlich weniger oft benutzt, also sorgt es für einen reibungslosen Entwicklungsprozess, wenn man sich vorher Gedanken über die Kosten macht.
Kosten für Streamlit in Snowflake verstehen
Die Kosten für Streamlit in Snowflake sind wie bei allen anderen Prozessen in Snowflake. Wenn du eine bestimmte Datenbank/ein bestimmtes Schema für Streamlit hast, fallen die üblichen Speicherkosten für diese Daten an. Wie bereits erwähnt, wirst du wahrscheinlich ein Lager speziell für deine Streamlit-in-Snowflake-Dienste einrichten wollen, damit du auch die Rechenkosten verfolgen kannst. Größere Lagergrößen, App-Parallelität (mehrere Benutzersitzungen) und das Datenvolumen werden die Hauptfaktoren für deine Kosten sein.
Ressourcenverbrauch optimieren
Um die Ausgaben im Griff zu behalten, ist es wichtig, die Lager genau richtig zu dimensionieren. Kleine Apps mit geringer Auslastung sollten es vermeiden, unnötig große Lager zu nutzen. Streamlit-Caching hilft dabei, wiederholte Abfragen innerhalb von Sitzungen zu minimieren, was die Rechenleistung reduziert. Snowflake hat auch Tools, die den Verbrauch im Auge behalten, damit du die Kosten anhand von Daten anpassen kannst.
Einschränkungen und Überlegungen
Obwohl Streamlit in Snowflake echt leistungsstark ist, gibt's ein paar Einschränkungen, die du beachten solltest, vor allem bei externen Paketen und beim Hochladen von Dateien.
Einschränkungen der Content Security Policy (CSP)
Die Plattform hat strenge Sicherheitsrichtlinien für Inhalte, um die Datensicherheit zu gewährleisten. Sachen wie benutzerdefinierte Skripte, Stile und Sachen, die eine externe Domain brauchen, werden eher blockiert. Stell sicher, dass die von dir verwendeten Komponenten keine externen Aufrufe brauchen. Das macht deine App viel sicherer, schränkt aber die Anpassungsmöglichkeiten ein, die du vielleicht von deinen eigenen Streamlit-Implementierungen gewohnt bist.
Einschränkungen bei der Datenübertragung und beim Caching
Der Umgang mit großen Datensätzen kann wegen einiger Einschränkungen beim Caching und bei der Nachrichtenübertragung echt schwierig sein. Die größte Einschränkung beim Caching ist, dass es auf Sitzungen und nicht auf Benutzern basiert. Also müssen Leute, die Apps nochmal öffnen und neue Sitzungen starten, die Daten nochmal laden. Überleg dir genau, ob deine Nutzer mehrere neue Sitzungen starten müssen. Wenn ja, überleg dir, wie du die Datenlast zwischen den Sitzungen minimieren kannst.
Es gibt zwar keine explizite Begrenzung für die Größe von Abfragen oder die Datenmenge im Speicher, aber Nachrichten sind auf 32 MB begrenzt. Das heißt, dass das Anzeigen von großen DataFrames und super komplexen Karten ein Problem sein kann. Überleg dir, was du den Nutzern unbedingt zeigen musst und was du vereinfachen kannst.
Einschränkungen beim Hochladen von Dateien und bei externen Speichern
Datei-Uploads funktionieren, sind aber auf eine Größe von 200 MB begrenzt. Du kannst auch nicht direkt mit externen Stufen arbeiten und musst die Daten erst in Snowflake verschieben. Das direkte Abrufen aus Apache Iceberg klappt also nicht, aber das Abrufen aus einem internen Data Lake für diese Daten geht.
Außerdem ist die Datei-Upload-Funktion in der Größe eingeschränkt, und externe Stufen werden momentan nicht unterstützt, was die Art und Weise einschränkt, wie Apps mit Dateien umgehen.
Fazit
Streamlit in Snowflake bietet eine leistungsstarke, integrierte Möglichkeit, interaktive Daten-Apps zu erstellen und bereitzustellen, ohne deine Snowflake-Umgebung zu verlassen. Es vereint Sicherheit, Skalierbarkeit und Benutzerfreundlichkeit und unterstützt gleichzeitig erweiterte Integrationen mit Snowpark, Cortex AI und dbt.
Auch wenn es Einschränkungen gibt, wie zum Beispiel bei externen Ressourcen und beim Hochladen von Dateien, machen die Vorteile wie schnelle Iteration, verwaltete Infrastruktur und nahtloser Austausch SiS zu einer transformativen Plattform für Datenteams. Junior-Praktiker können klein anfangen – indem sie mit einfachen Dashboards experimentieren – und dann zu unternehmensgerechten KI- und Analyseanwendungen übergehen. Mehr Infos zu Snowflake findest du hier:
Snowflake Streamlit – Häufig gestellte Fragen
Was ist Snowflake Streamlit und wie unterscheidet es sich von normalem Streamlit?
Snowflake Streamlit ist eine komplett verwaltete Version von Streamlit, die direkt in Snowflake läuft, sodass man keine separaten Server oder Infrastruktur braucht. Bei normalem Streamlit musst du es selbst ausführen/hosten.
Wie viel Python-Wissen braucht man, um loszulegen?
Grundkenntnisse in Python reichen aus. Wenn du Funktionen schreiben, Bibliotheken importieren und DataFrames verstehen kannst (z. B. mit Pandas), kannst du schnell einfache Apps erstellen.
Was sind die Hauptunterschiede zwischen der Bereitstellung über Snowsight und die CLI?
Snowsight ist visuell und anfängerfreundlich und eignet sich am besten für die Prototypenentwicklung. Die CLI ist besser für Automatisierung, Versionskontrolle und CI/CD-Pipelines.
Hat das Ausführen von Streamlit-Apps in Snowflake Auswirkungen auf meinen Kreditverbrauch?
Ja. Da Streamlit-Apps Daten von Snowflake abfragen, verbrauchen sie beim Ausführen Rechen-Credits, genau wie beim Ausführen von Abfragen. Das Optimieren von Abfragen hilft dabei, die Kosten im Griff zu behalten.
Kann man Snowflake Streamlit-Apps mit GitHub oder CI/CD verbinden?
Ja. Mit der Snowflake-CLI kannst du App-Bereitstellungen in CI/CD-Pipelines (z. B. GitHub Actions) einbauen, was die Automatisierung von Updates bei Codeänderungen vereinfacht.
Ich bin Datenwissenschaftler mit Erfahrung in räumlicher Analyse, maschinellem Lernen und Datenpipelines. Ich habe mit GCP, Hadoop, Hive, Snowflake, Airflow und anderen Data Science/Engineering-Prozessen gearbeitet.
