Beispiel: Erstellen eines personalisierten Daten-Dashboards

Dieses Beispiel führt Sie durch die Erstellung einer Streamlit in Snowflake-App, die Snowflake-Daten abfragt, eine Diagrammbibliothek eines Drittanbieters hinzufügt und die Anzeige für jeden Betrachter personalisiert. Am Ende werden Sie den zentralen Entwicklungszyklus verstehen: Erstellen, Bereitstellen, Bearbeiten und erneutes Bereitstellen.

Die App verwendet eine Container-Laufzeit. Bevor Sie beginnen, vergewissern Sie sich, dass Sie die Voraussetzungen abgeschlossen haben.

Beispieldaten einrichten

Dieses Beispiel verwendet eine Datenbank namens dashboard_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 mit Beispieldaten zum Umsatz. Führen Sie folgende SQL in einem Arbeitsblatt oder einer SQL-Sitzung aus:

CREATE OR REPLACE TABLE dashboard_demo.public.monthly_revenue (
   month DATE,
   region VARCHAR,
   revenue NUMBER(12, 2)
);

INSERT INTO dashboard_demo.public.monthly_revenue VALUES
   ('2026-01-01', 'North America', 125000.00),
   ('2026-01-01', 'Europe', 98000.00),
   ('2026-01-01', 'Asia Pacific', 87000.00),
   ('2026-02-01', 'North America', 132000.00),
   ('2026-02-01', 'Europe', 101000.00),
   ('2026-02-01', 'Asia Pacific', 93000.00),
   ('2026-03-01', 'North America', 141000.00),
   ('2026-03-01', 'Europe', 110000.00),
   ('2026-03-01', 'Asia Pacific', 99000.00);

App-Code schreiben

Erstellen Sie auf Ihrem lokalen Computer in einem Projektverzeichnis Ihrer Wahl 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.

import streamlit as st
import plotly.express as px

st.title("Revenue Dashboard")
st.write(f"Welcome, {st.user.user_name}!")

conn = st.connection("snowflake")

df = conn.query("""
    SELECT month, region, revenue
    FROM dashboard_demo.public.monthly_revenue
    ORDER BY month
""")

selected_regions = st.multiselect(
    "Filter by region",
    options=df["REGION"].unique(),
    default=df["REGION"].unique(),
)

filtered = df[df["REGION"].isin(selected_regions)]

fig = px.bar(
    filtered,
    x="MONTH",
    y="REVENUE",
    color="REGION",
    barmode="group",
    title="Monthly Revenue by Region",
)
st.plotly_chart(fig, use_container_width=True)

st.dataframe(filtered, use_container_width=True)

Diese App verwendet:

Abhängigkeiten deklarieren

Container-Laufzeiten installieren Pakete, die in einer requirements.txt-Datei aufgeführt sind. Erstellen Sie eine requirements.txt-Datei neben Ihrer streamlit_app.py:

plotly
streamlit

Wenn die App gestartet wird, installiert die Container-Laufzeit automatisch die deklarierten Pakete. 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.

App bereitstellen

  1. Melden Sie sich bei Snowsight an.

  2. Wählen Sie im Navigationsmenü die Option Projects » Streamlit aus.

  3. Wählen Sie + Streamlit App aus.

  4. Geben Sie revenue_dashboard als Namen der App ein.

  5. Wählen Sie eine Datenbank und ein Schema aus.

  6. Wählen Sie Run on container und dann einen Computepool und ein Abfrage-Warehouse aus.

  7. Wählen Sie Create aus.

  8. Ersetzen Sie im Editor den Startcode durch den obigen App-Code.

  9. Laden Sie die Datei requirements.txt hoch, oder erstellen Sie diese durch Auswahl von + (Hinzufügen) »Create new file und Eingabe von requirements.txt und Einfügen des Inhalts.

  10. Wählen Sie Run aus.

Änderungen vornehmen

Versuchen Sie, Ihre App zu bearbeiten, um den Entwicklungszyklus in Aktion zu sehen. Fügen Sie eine Zusammenfassungskennzahl hinzu, indem Sie die folgenden beiden Zeilen in streamlit_app.py einfügen, zwischen Zeile filtered = ... und fig = px.bar(...):

total = filtered["REVENUE"].sum()
st.metric("Total Revenue", f"${total:,.0f}")

Wenn Sie die Bearbeitung im Browser vornehmen, fügen Sie die Zeilen in den Editor ein, und wählen Sie Run aus.

Weitere Informationen zum Bearbeitungsworkflow finden Sie unter Streamlit-App bearbeiten.

Bereinigen

Um die in diesem Beispiel erstellten Ressourcen zu entfernen, führen Sie folgende SQL aus:

DROP STREAMLIT IF EXISTS dashboard_demo.public.revenue_dashboard;
DROP TABLE IF EXISTS dashboard_demo.public.monthly_revenue;

Nächste Schritte