Streamlit-Apps mit SQL erstellen und bereitstellen¶
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.
Erstellen einer Streamlit-App mithilfe von SQL¶
Bevor Sie eine Streamlit-App mithilfe von SQL erstellen, stellen Sie sicher, dass Sie die erforderlichen Voraussetzungen erfüllen.
Um eine Streamlit-App in Snowflake mit SQL-Befehlen zu erstellen, führen Sie jede der folgenden Aufgaben aus:
Erstellen Sie die Streamlit-Dateien auf Ihrem lokalen System
Laden Sie Ihre Streamlit-Dateien in einen benannten Stagingbereich hoch
Erstellen Sie die Streamlit-Dateien auf Ihrem lokalen System¶
In diesem Abschnitt wird beschrieben, wie Sie eine ein- oder mehrseitige Streamlit-App erstellen.
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 Verwalten Sie die Pakete mit der environment.yml-Datei.
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.
Laden Sie Ihre Streamlit-Dateien in einen benannten Stagingbereich hoch¶
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 Sie ein STREAMLIT-Objekt¶
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;
Verwalten Sie die Pakete mit der environment.yml
-Datei¶
So installieren Sie zusätzliche Python-Pakete in Ihrer Streamlit-App:
Erstellen Sie eine
environment.yml
-Datei auf Ihrem lokalen System.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.
Streamlit-Version in der Datei environment.yml
festlegen¶
Um die Streamlit-Version in der environment.yml
-Datei festzulegen, fügen Sie eine streamlit
-Abhängigkeit ein, wie im folgenden Beispiel gezeigt:
name: sf_env
channels:
- snowflake
dependencies:
- scikit-learn
- streamlit=1.31.1
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.
Verwalten Sie STREAMLIT-Objekte¶
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;