Erstellen einer Streamlit-App mit SQL¶
Achtung
Dieses Feature ist für Konten in kommerziellen AWS- und Microsoft Azure-Regionen verfügbar. AWS PrivateLink und Azure Private Link werden nicht unterstützt.
Unter diesem Thema wird beschrieben, wie Sie eine Streamlit-App in Snowflake mit SQL-Befehlen bereitstellen. Es wird beschrieben, wie einseitige und mehrseitige Streamlit-Apps bereitgestellt werden können.
Voraussetzungen¶
Bevor Sie eine Streamlit-App mithilfe von SQL bereitstellen, sollten Sie die folgenden Voraussetzungen erfüllen:
Überprüfen Sie die Nicht unterstützte Streamlit-Features und Zusätzliche Einschränkungen bei der Verwendung von Streamlit in Snowflake.
Vergewissern Sie sich, dass Ihr Konto über die richtigen Berechtigungen verfügt, wie unter Erforderliche Berechtigungen zum Erstellen und Verwenden einer Streamlit-App beschrieben.
Vergewissern Sie sich, dass Sie einen benannten Stagingbereich erstellen können oder Zugriff darauf haben, in den Sie Ihre Streamlit-App-Dateien hochladen können.
Erstellen einer Streamlit-App mit SQL¶
Um eine Streamlit-App in Snowflake mit SQL-Befehlen zu erstellen, führen Sie jede der folgenden Aufgaben aus:
Erstellen der Streamlit-Dateien auf Ihrem lokalen Dateisystem
Hochladen Ihrer Streamlit-Dateien in einen benannten Stagingbereich
Erstellen der Streamlit-Dateien auf Ihrem lokalen Dateisystem¶
In diesem Abschnitt wird beschrieben, wie Sie eine ein- oder mehrseitige Streamlit-App erstellen. Beispiele für jede Art der Anwendung finden Sie unter Beispiel: Einseitige Streamlit-App und Beispiel: Mehrseitige Streamlit-App.
Um die Dateien für Ihre Streamlit-App zu erstellen, gehen Sie wie folgt vor:
Erstellen Sie in Ihrem lokalen Dateisystem Ihre Haupt-Streamlit-App.
Optional: Wenn Sie eine mehrseitige Streamlit-App erstellen, erstellen Sie auf Ihrem lokalen Dateisystem einen Ordner mit dem Namen
pages
und fügen die zusätzlichen Streamlit-Seiten in diesen Unterordner ein.Optional: Um externe Pakete in Ihre Streamlit-App einzubinden, erstellen Sie eine Datei
environment.yml
. Einzelheiten zur Einbindung externer Pakete finden Sie unter Installation von Paketen mithilfe der Datei environment.yml.
Nachdem Sie die Streamlit-Seiten erstellt haben, sollte Ihre Verzeichnisstruktur in etwa so aussehen:
└── streamlit/
└── environment.yml
└── streamlit_main.py
└── pages/
└── data_frame_demo.py
└── plot_demo.py
Bemerkung
Die Datei environment.yml
und der optionale Unterorder pages
müssen sich auf derselben Ebene befinden wie Ihre Streamlit-Hauptdatei. Alle zusätzlichen Streamlit-Seiten müssen in den Unterordner pages
aufgenommen werden.
Hochladen Ihrer Streamlit-Dateien in einen benannten Stagingbereich¶
Um eine Streamlit-App in Streamlit in Snowflake zu erstellen, müssen Sie Ihre Anwendungsdateien in einen benannten Stagingbereich hochladen.
Führen Sie einen der folgenden Schritte aus, um die Anwendungsdateien hochzuladen:
Laden Sie die Anwendungsdateien über Snowsight hoch, wie unter Bereitstellen von Dateien im Stagingbereich mit Snowsight beschrieben.
Laden Sie die Anwendungsdateien mithilfe von SnowSQL hoch, wie im folgenden Beispiel gezeigt:
PUT file:///<path_to_your_root_folder>/streamlit/streamlit_main.py @streamlit_db.streamlit_schema.streamlit_stage overwrite=true auto_compress=false; PUT file:///<path_to_your_root_folder>/streamlit/environment.yml @streamlit_db.streamlit_schema.streamlit_stage overwrite=true auto_compress=false; PUT file:///<path_to_your_root_folder>/streamlit/pages/streamlit_page_2.py @streamlit_db.streamlit_schema.streamlit_stage/pages/ overwrite=true auto_compress=false; PUT file:///<path_to_your_root_folder>/streamlit/pages/streamlit_page_3.py @streamlit_db.streamlit_schema.streamlit_stage/pages/ overwrite=true auto_compress=false;
Erstellen eines STREAMLIT-Objekts¶
Ein STREAMLIT-Objekt ist ein Datenbankobjekt in Snowflake, das die von Ihrer Streamlit-App benötigten Dateien kapselt.
Um ein STREAMLIT-Objekt zu erstellen, führen Sie den Befehl CREATE STREAMLIT aus, wie im folgenden Beispiel gezeigt:
CREATE STREAMLIT hello_streamlit ROOT_LOCATION = '@streamlit_db.streamlit_schema.streamlit_stage' MAIN_FILE = '/streamlit_main.py' QUERY_WAREHOUSE = my_warehouse;
Mit diesem Befehl wird ein STREAMLIT-Objekt mit dem Namen
hello_streamlit
auf der Grundlage des in ROOT_LOCATION und MAIN_FILE angegebenen Pfades und der Datei erstellt.Bemerkung
Obwohl die QUERY_WAREHOUSE-Klausel optional ist, müssen Sie ein Abfrage-Warehouse angeben, um die Streamlit-App in Snowflake ausführen zu können.
Um zu überprüfen, ob das Streamlit-Objekt erstellt wurde, führen Sie den Befehl SHOW STREAMLITS aus, wie im folgenden Beispiel gezeigt:
SHOW STREAMLITS;
Installation von Paketen mithilfe der Datei environment.yml
¶
So installieren Sie zusätzliche Python-Pakete in Ihrer Streamlit-App:
Fügen Sie eine
environment.yml
-Datei zu der App hinzu.Um die Datei in den Stagingbereich hochzuladen, der durch den Parameter
ROOT_LOCATION
des Objekts STREAMLIT festgelegt ist, führen Sie den Befehl PUT aus.Die in
environment.yml
aufgeführten Pakete werden aus dem Snowflake Anaconda-Kanal installiert.
Das folgende Beispiel environment.yml
zeigt, wie Sie scikit-learn
in der Streamlit-Umgebung installieren:
name: sf_env
channels:
- snowflake
dependencies:
- scikit-learn
Die Eigenschaften name
und channels
sind erforderlich. Außerdem wird der Schlüssel - snowflake
unter der Eigenschaft channels
benötigt.
Bemerkung
Sie können nur Pakete installieren, die im Snowflake Anaconda-Kanal aufgeführt sind. Streamlit in Snowflake unterstützt keine externen Anaconda-Kanäle.
Anzeigen einer Streamlit-App¶
Um Informationen zu dem STREAMLIT-Objekt anzuzeigen, führen Sie den Befehl DESCRIBE STREAMLIT aus, wie im folgenden Beispiel gezeigt:
DESC STREAMLIT hello_streamlit;
Informationen zur Anzeige Ihre Streamlit-App in Snowsight finden Sie unter Anzeigen einer Streamlit-App.
Ändern eines vorhandenen STREAMLIT-Objekts¶
Nachdem Sie ein STREAMLIT-Objekt erstellt haben, verwenden Sie den Befehl ALTER STREAMLIT, um verschiedene Eigenschaften zu ändern, wie in den folgenden Abschnitten beschrieben.
Umbenennen eines STREAMLIT-Objekts¶
Um ein STREAMLIT-Objekt umzubenennen, verwenden Sie die Klausel RENAME TO des Befehls ALTER STREAMLIT, wie im folgenden Beispiel gezeigt:
ALTER STREAMLIT hello_streamlit RENAME TO hello_snowflake;
Ändern des Stagingbereichs oder der Hauptdatei in einem STREAMLIT-Objekt¶
Um den Pfad zum Stagingbereich für ein STREAMLIT-Objekt zu ändern, verwenden Sie den Befehl ALTER STREAMLIT, um die Eigenschaft ROOT_LOCATION des Objekts zu setzen, wie im folgenden Beispiel gezeigt:
ALTER STREAMLIT hello_streamlit SET ROOT_LOCATION '@snowflake_db.snowflake_schema.snowflake_stage'
Um die Haupt-Streamlit-Datei in einem STREAMLIT-Objekt zu ändern, verwenden Sie den Befehl ALTER STREAMLIT, um die Eigenschaft MAIN_FILE des Objekts zu setzen, wie im folgenden Beispiel gezeigt:
ALTER STREAMLIT hello_streamlit SET MAIN_FILE 'snowflake_main.py'
Ändern des einem STREAMLIT-Objekt zugewiesenen Abfrage-Warehouses¶
Um ein Abfrage-Warehouse hinzuzufügen oder das aktuelle Abfrage-Warehouse für ein STREAMLIT-Objekt zu ändern, verwenden Sie den Befehl ALTER STREAMLIT, um die Eigenschaft QUERY_WAREHOUSE des Objekts zu setzen, wie im folgenden Beispiel gezeigt:
ALTER STREAMLIT hello_streamlit SET QUERY_WAREHOUSE my_new_warehouse;
Liste der verfügbaren STREAMLIT-Objekte¶
Um die Streamlit-Apps aufzulisten, die für Ihre aktuelle Rolle verfügbar sind, führen Sie den Befehl SHOW STREAMLITS aus, wie im folgenden Beispiel gezeigt:
SHOW STREAMLITS;
Löschen eines STREAMLIT-Objekts¶
Um ein STREAMLIT-Objekt zu löschen, führen Sie den Befehl DROP STREAMLIT aus, wie im folgenden Beispiel gezeigt:
DROP STREAMLIT hello_streamlit;