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.
- 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 - pagesund fügen Sie die zusätzlichen Streamlit-Seiten in diesen Unterordner ein.
- Optional: Um externe Pakete in Ihre Streamlit-App einzubinden, erstellen Sie eine Datei - environment.yml. Informationen 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 Unterordner 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_streamlitauf 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: - 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_LOCATIONdes Objekts STREAMLIT festgelegt ist, führen Sie den Befehl PUT aus.- Die in - environment.ymlaufgefü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;