Allgemeine Informationen zu Streamlit in Snowflake

Unter diesem Thema wird beschrieben, wie Sie mit Streamlit in Snowflake Streamlit-Apps entwickeln und ausführen können.

Allgemeine Informationen zu Streamlit in Snowflake

Streamlit ist eine Open-Source-Python-Bibliothek, mit der sich kundenspezifische Webanwendungen für maschinelles Lernen und Data Science leicht erstellen und freigeben lassen. Mit Streamlit können Sie schnell leistungsstarke Datenanwendungen erstellen und einsetzen. Weitere Informationen zu der Open-Source-Bibliothek finden Sie in der Streamlit Library-Dokumentation.

Streamlit in Snowflake unterstützt Entwickler beim sicheren Erstellen, Bereitstellen und Freigeben von Streamlit-Apps in der Snowflake-Datencloud. Mit Streamlit in Snowflake können Sie Anwendungen erstellen, die Daten in Snowflake verarbeiten und nutzen, ohne Daten oder Anwendungscode in ein externes System verschieben zu müssen.

Voraussetzungen für die Verwendung von Streamlit in Snowflake

Um Streamlit in Snowflake zu verwenden, müssen Sie die folgenden Voraussetzungen erfüllen:

Erforderliche Berechtigungen zum Erstellen und Verwenden einer Streamlit-App

Innerhalb von Streamlit in Snowflake ist eine Streamlit-App ein sicherungsfähiges Objekt, das dem Snowflake-Framework für die Zugriffssteuerung unterliegt. Streamlit-Apps verwenden ein Berechtigungsmodell, das auf Eigentümerrechten basiert. Weitere Informationen dazu finden Sie unter Erläuterungen zu Eigentümerrechten und Streamlit in Snowflake-Apps.

In den folgenden Abschnitten werden die Berechtigungen beschrieben, die zum Erstellen und Anzeigen einer Streamlit-App in Snowflake erforderlich sind.

Erforderliche Berechtigungen zum Erstellen einer Streamlit-App

Streamlit-Apps sind Objekte auf Schemaebene. Um eine Streamlit-App mithilfe von Streamlit in Snowflake zu erstellen und zu bearbeiten, müssen Sie eine Rolle verwenden, die über die folgenden Berechtigungen für das Schema und die Datenbank verfügt, die die Streamlit-App enthalten:

  • USAGE

  • CREATE STREAMLIT

  • CREATE STAGE

Verwenden Sie den Befehl GRANT <Berechtigungen>, um einer Rolle diese Berechtigungen zu erteilen, wie in den folgenden Beispielen gezeigt:

GRANT USAGE ON SCHEMA mydb.myschema TO ROLE myrole;
GRANT USAGE ON DATABASE mydb TO ROLE myrole;
GRANT CREATE STREAMLIT ON SCHEMA mydb.myschema TO ROLE myrole;
GRANT CREATE STAGE ON SCHEMA mydb.myschema TO ROLE myrole;
Copy

Erforderliche Berechtigungen zum Anzeigen einer Streamlit-App

Um eine Streamlit-App anzuzeigen, müssen Sie ein Snowflake-Konto haben und angemeldet sein. Darüber hinaus müssen Ihrem Konto die folgenden Berechtigungen erteilt werden:

  • Die globale Berechtigung CREATE STREAMLIT muss dem Benutzerkonto erteilt werden.

  • Die Berechtigung USAGE auf Objektebene muss dem Benutzerkonto in der Datenbank und dem Schema, die die Anwendung enthalten, erteilt werden.

Ein App-Editor und der Eigentümer des Schemas, das die Streamlit-App enthält, können festlegen, welche Rollen die App verwenden dürfen. Benutzer können mit der App interagieren und alles sehen, was die Streamlit-App anzeigt. Benutzer haben die gleiche Ansicht der App wie der Eigentümer.

Weitere Informationen dazu finden Sie unter Freigabe einer Streamlit-App.

Unterstützte Versionen der Streamlit-Bibliotheken

Streamlit in Snowflake unterstützt v1.22.0 der Streamlit-Bibliotheken. Unterstützung für spätere Versionen der Streamlit-Bibliotheken wird nach und nach hinzugefügt.

Unterstützte externe Pakete

Standardmäßig enthält Streamlit in Snowflake die Pakete python, streamlit und snowflake-snowpark-python, die in Ihrer Umgebung vorinstalliert sind. Die Umgebung hat auch Zugriff auf die von diesen Paketen benötigten Abhängigkeiten.

Sie können zusätzliche Pakete in Ihrer Streamlit-App installieren. Eine Liste der unterstützten Pakete finden Sie im Snowflake Anaconda Channel.

Unter den folgenden Themen finden Sie Informationen zum Einbinden eines unterstützten Pakets in Ihre Streamlit-App:

Hinweise zur Parallelität bei Streamlit in Snowflake

Streamlit in Snowflake bietet Sitzungsdrosselung und automatische Skalierung innerhalb von Snowflake, um Zeiten erhöhter Nachfrage nach einer Streamlit-App zu bewältigen. Streamlit in Snowflake verwendet eine Kombination aus Clouddienstinstanzen und Instanzen virtueller Warehouses. Weitere Informationen dazu finden Sie unter Schlüsselkonzepte und Architektur.

Um die Integrität von Snowflake zu wahren, setzt Streamlit in Snowflake pro Instanz, pro Konto und pro Benutzer Grenzen für die Anzahl der gleichzeitigen Streamlit-Sitzungen, die eine Clouddienstinstanz verarbeiten kann. Die Last der Streamlit-Sitzungen wird zwischen diesen Instanzen ausgeglichen, bis alle Instanzen ihr Limit für gleichzeitige Sitzungen erreicht haben. Wenn eine Grenze erreicht ist, wird die Instanz automatisch skaliert, um zusätzliche Sitzungen zu unterstützen.

Bemerkung

Anforderungen von Benutzern der Streamlit-App können vorübergehend gedrosselt werden. Wenn die automatische Skalierung gestartet wird, wird möglicherweise die Meldung „Bitte warten“ angezeigt.

Hinweise zur Abrechnung für Streamlit in Snowflake

Streamlit in Snowflake benötigt ein virtuelles Warehouse, um eine Streamlit-Anwendung auszuführen und SQL-Abfragen durchzuführen. Um eine Streamlit-Anwendung auszuführen, müssen Sie ein einziges virtuelles Warehouse auswählen, um sowohl die Anwendung selbst als auch deren Abfragen auszuführen. Dieses Warehouse bleibt aktiv, solange die Web-Socket-Verbindung der App aktiv ist. Die Web-Socket-Verbindung, die dafür sorgt, dass das virtuelle Warehouse der Streamlit-App aktiv bleibt, wird etwa 15 Minuten nach der letzten Nutzung der App deaktiviert.

Um Credits zu sparen, können Sie das virtuelle Warehouse anhalten. Alternativ können Sie die Webseite schließen, auf der die Anwendung ausgeführt wird, wodurch das aktive virtuelle Warehouse automatisch angehalten wird.

Richtlinien für die Auswahl eines Warehouses in Streamlit in Snowflake

Wenn Sie eine Streamlit-App in Streamlit in Snowflake ausführen, können sich mehrere Faktoren auf die Leistung auswirken, darunter die Komplexität der Streamlit-App, die Verfügbarkeit von Warehouses, die Latenz und die Kosten. Die folgenden Abschnitte enthalten allgemeine Richtlinien für die Verwendung von virtuellen Warehouses in Streamlit in Snowflake.

Kleinere Warehouses nutzen

Wenn Sie eine Streamlit-App in Streamlit in Snowflake ausführen, sollten Sie das kleinstmögliche Warehouse auswählen.

Während der Ausführung verwaltet ein Warehouse einen Cache der von einer Streamlit-App verwendeten Python-Pakete. Das Zwischenspeichern von Python-Paketen verbessert die Leistung beim späteren Laden von Apps, indem die zwischengespeicherte Version eines Pakets verwendet wird, anstatt die Pakete erneut herunterzuladen. Der Cache wird entfernt, wenn das Warehouse angehalten wird, was dazu führen kann, dass die App nach dem Fortsetzen des Warehouses zunächst langsamer geladen wird. Wenn das fortgesetzte Warehouse läuft und mehr Apps ausführt, wird der Paket-Cache neu aufgebaut, und die Apps, die den Cache nutzen können, erfahren eine verbesserte Leistung beim Laden.

Beachten Sie, dass die sekundengenaue Credit-Abrechnung und die automatische Aussetzung die Flexibilität bieten, mit kleineren Warehouses zu beginnen und dann die Größe des Warehouses an den Workload der Streamlit-App anzupassen. Sie können jederzeit die Größe eines Warehouse verringern. Weitere Informationen dazu finden Sie unter Das Warehouse einer Streamlit-App ändern.

Verwenden von dedizierten Warehouses

Wenn Sie Streamlit in Snowflake verwenden, empfiehlt Snowflake die Verwendung eines dedizierten Warehouses für die Ausführung von Streamlit-Apps. So können Sie die Kosten für das Ausführen einer Streamlit-App isolieren. Ein dediziertes Warehouse kann auch die Ladezeit der App verbessern, da das Warehouse keine anderen Workloads verwalten muss.

Weitere Informationen dazu finden Sie unter Hinweise zu Warehouses.