Exemple : Création d’un tableau de bord de données personnalisé

Cet exemple vous guide à travers la création d’une application Streamlit in Snowflake qui interroge les données Snowflake, ajoute une bibliothèque de graphiques tierce et personnalise l’affichage pour chaque lecteur. À la fin, vous maîtriserez le cycle de développement principal : création, déploiement, modification et redéploiement.

L’application utilise un runtime de conteneur. Avant de commencer, assurez-vous d’avoir rempli les conditions préalables.

Configurer des données d’échantillon

Cet exemple utilise une base de données appelée dashboard_demo. Vous pouvez remplacer n’importe quelle base de données et n’importe quel schéma auxquels vous avez accès – il suffit de mettre à jour les références dans le SQL et le code d’application pour qu’elles correspondent.

Créez une table avec des données d’échantillon sur les revenus. Exécutez le SQL suivant dans une feuille de calcul ou une session SQL :

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);

Écrire le code de l’application

Sur votre machine locale, dans le répertoire de projet de votre choix, créez un fichier nommé streamlit_app.py avec le code suivant. Si vous prévoyez d’utiliser Snowsight, vous pouvez coller ce code dans l’éditeur après la création de l’application.

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)

Cette application utilise :

Déclarer les dépendances

Les runtimes de conteneur installent des paquets répertoriés dans un fichier requirements.txt. Créez un fichier requirements.txt à côté de votre streamlit_app.py :

plotly
streamlit

Lorsque l’application démarre, le runtime de conteneur installe automatiquement les paquets déclarés. Pour des scénarios de dépendance plus complexes, vous pouvez utiliser un fichier pyproject.toml à la place. Pour plus d’informations, voir Gérer les dépendances de votre application Streamlit.

Déployer l’application

  1. Connectez-vous à Snowsight.

  2. Dans le menu de navigation, sélectionnez Projects » Streamlit.

  3. Sélectionnez + Streamlit App.

  4. Saisissez revenue_dashboard comme nom de l’application.

  5. Sélectionnez une base de données et un schéma.

  6. Sélectionnez Run on container, puis sélectionnez un pool de calcul et un entrepôt de requêtes.

  7. Sélectionnez Create.

  8. Dans l’éditeur, remplacez le code de démarrage par le code d’application ci-dessus.

  9. Importez ou créez le fichier requirements.txt en sélectionnant + (Ajouter) » Create new file, en saisissant requirements.txt et en collant le contenu.

  10. Sélectionnez Run.

Apporter une modification

Essayez de modifier votre application pour voir le cycle de développement en action. Ajoutez une métrique récapitulative en insérant les deux lignes suivantes dans streamlit_app.py, entre la ligne filtered = ... et la ligne fig = px.bar(...) :

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

Si vous apportez les modifications depuis le navigateur, collez les lignes dans l’éditeur et sélectionnez Run.

Pour plus d’informations sur le workflow d’édition, voir Modifier votre application Streamlit.

Nettoyage

Pour supprimer les ressources créées dans cet exemple, exécutez la commande SQL suivante :

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

Quelle est la prochaine étape ?