Beispiel: Erstellen eines Formulars, das in Snowflake schreibt¶
Dieses Beispiel führt Sie durch die Erstellung einer Streamlit in Snowflake-App, die Benutzereingaben über ein Formular sammelt und sie in eine Snowflake-Tabelle schreibt. Die App liest auch die Daten zurück, um alle Einträge anzuzeigen, und verwendet st.user, um zu verfolgen, wer jeden Eintrag eingereicht hat.
Die App verwendet eine Container-Laufzeit. Bevor Sie beginnen, vergewissern Sie sich, dass Sie die Voraussetzungen abgeschlossen haben.
Zieltabelle einrichten¶
Dieses Beispiel verwendet eine Datenbank namens crud_demo. Sie können jede Datenbank und jedes Schema, auf das Sie Zugriff haben, ersetzen. Aktualisieren Sie einfach die Referenzen im SQL- und App-Code für den Abgleich.
Erstellen Sie eine Tabelle, um Formulardaten zu speichern. Führen Sie folgende SQL in einem Arbeitsblatt oder einer SQL-Sitzung aus:
App-Code schreiben¶
Erstellen Sie auf Ihrem lokalen Computer eine Datei namens streamlit_app.py mit dem folgenden Code. Wenn Sie Snowsight verwenden möchten, können Sie diesen Code in den Editor einfügen, nachdem Sie die App erstellt haben.
Diese App verwendet:
st.form, um Eingaben vor dem Senden zu sammeln und so zu verhindern, dass bei jeder Widget-Interaktion eine Wiederholung erfolgt.st.connection("snowflake").session(), um eine Snowpark-Sitzung zum Schreiben von Daten zu erhalten. Weitere Informationen dazu finden Sie unter Verwalten von Geheimnissen und Konfigurieren der Streamlit-App.session.sql()anstelle von:code:conn.query(), um die Einträge zurückzulesen.conn.query()speichert Ergebnisse standardmäßig im Cache, sodass neue Einträge erst nach Ablauf des Cache angezeigt werden.session.sql()führt bei jeder Wiederholung eine neue Abfrage aus.st.user.user_name, um zu erfassen, wer jeden Eintrag eingereicht hat. Weitere Informationen dazu finden Sie unter Personalisieren Ihrer Streamlit-App mit Benutzerinformationen.
Abhängigkeiten deklarieren¶
Diese App verwendet nur streamlit und die integrierte Snowflake-Verbindung, sodass keine zusätzlichen Abhängigkeiten erforderlich sind.
Weitere Informationen dazu finden Sie unter Verwalten von Abhängigkeiten für Ihre Streamlit-App.
App bereitstellen¶
Melden Sie sich bei Snowsight an.
Wählen Sie im Navigationsmenü die Option Projects » Streamlit aus.
Wählen Sie + Streamlit App aus.
Geben Sie
feedback_appals Namen der App ein.Wählen Sie eine Datenbank und ein Schema aus.
Wählen Sie Run on container und dann einen Computepool und ein Abfrage-Warehouse aus.
Wählen Sie Create aus.
Ersetzen Sie im Editor den Startcode durch den obigen App-Code.
Wählen Sie Run aus.
App-Dateien per Staging bereitstellen:
Streamlit-App erstellen:
Um Ihre App anzuzeigen, melden Sie sich bei Snowsight an und wählen Sie dann im Navigationsmenü Projects`|raa|:ui:`Streamlit aus und wählen Sie Ihre App aus.
Bemerkung
Snowflake-CLI Version 3.14.0 oder höher ist erforderlich. Version 3.14+ verwendet die moderne CREATE STREAMLIT-Syntax standardmäßig.
Erstellen Sie ein Projektverzeichnis mit der folgenden Struktur:
Erstellen Sie eine
snowflake.yml-Datei:Stellen Sie die App bereit:
App testen¶
Öffnen Sie die App in Ihrem Browser.
Füllen Sie die Felder des Formulars aus, und wählen Sie Submit aus.
Die Feedback-Tabelle unter dem Formular wird aktualisiert und zeigt Ihren neuen Eintrag an, einschließlich Ihrer E-Mail-Adresse und eines Zeitstempels.
Übermitteln Sie einige weitere Einträge und versuchen Sie dann, die Daten in der Tabelle zu filtern oder zu sortieren.
App erweitern¶
Versuchen Sie, neben jeder Zeile eine Löschschaltfläche hinzuzufügen, oder erstellen Sie ein Diagramm, das die durchschnittliche Bewertung nach Kategorien anzeigt. Fügen Sie nach dem DataFrame zum Beispiel Folgendes hinzu:
Wenn Sie plotly hinzufügen möchten, dann deklarieren Sie dies in einer requirements.txt-Datei:
Für komplexere Abhängigkeitsszenarios können Sie stattdessen eine pyproject.toml-Datei verwenden. Weitere Informationen dazu finden Sie unter Verwalten von Abhängigkeiten für Ihre Streamlit-App.
Bereinigen¶
Um die in diesem Beispiel erstellten Ressourcen zu entfernen, führen Sie folgende SQL aus:
Nächste Schritte¶
Erstellen der Streamlit-App: Lernen Sie alle Optionen zum Erstellen von Apps kennen.
Personalisieren Ihrer Streamlit-App mit Benutzerinformationen: Erkunden Sie alle über
st.userverfügbaren Benutzerattribute.Verwalten von Geheimnissen und Konfigurieren der Streamlit-App: Zugriff auf Geheimnisse und externe Dienste in Ihrer App
Freigeben von Streamlit in Snowflake-Apps: Geben Sie Ihre App für andere Benutzer frei.