Exemple : Créer un formulaire qui écrit dans Snowflake¶
Cet exemple vous guide à travers la création d’une application Streamlit in Snowflake qui collecte les données utilisateur via un formulaire et les écrit dans une table Snowflake. L’application lit également les données pour afficher toutes les soumissions et utilise st.user pour savoir qui a soumis chaque entrée.
L’application utilise un runtime de conteneur. Avant de commencer, assurez-vous d’avoir terminé les conditions préalables.
Configurer la table cible¶
Cet exemple utilise une base de données appelée crud_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 pour stocker les soumissions de formulaire. Exécutez le SQL suivant dans une feuille de calcul ou une session SQL :
Écrire le code de l’application¶
Sur votre machine locale, 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.
Cette application utilise :
st.formpour collecter les entrées avant de les soumettre, en empêchant les nouvelles exécutions à chaque interaction du widget.st.connection("snowflake").session()pour obtenir une session Snowpark pour l’écriture de données. Pour plus d’informations, voir Gérer les secrets et configurer votre application Streamlit.session.sql()au lieu deconn.query()pour lire les soumissions.conn.query()met en cache les résultats par défaut, de sorte que les nouvelles entrées n’apparaissent pas avant l’expiration du cache.session.sql()exécute une nouvelle requête à chaque nouvelle exécution.st.user.user_namepour enregistrer qui a soumis chaque entrée. Pour plus d’informations, voir Personnaliser l’application Streamlit avec des informations utilisateur.
Déclarer les dépendances¶
Cette application utilise uniquement streamlit et la connexion Snowflake intégrée, de sorte qu’aucune dépendance supplémentaire n’est requise.
Pour plus d’informations, voir Gérer les dépendances de votre application Streamlit.
Déployer l’application¶
Connectez-vous à Snowsight.
Dans le menu de navigation, sélectionnez Projects » Streamlit.
Sélectionnez + Streamlit App.
Saisissez
feedback_appcomme nom de l’application.Sélectionnez une base de données et un schéma.
Sélectionnez Run on container, puis sélectionnez un pool de calcul et un entrepôt de requêtes.
Sélectionnez Create.
Dans l’éditeur, remplacez le code de démarrage par le code d’application ci-dessus.
Sélectionnez Run.
Préparez les fichiers de votre application :
Créez l’appli Streamlit :
Pour voir votre application, connectez-vous à Snowsight, puis dans le menu de navigation, sélectionnez Projects » Streamlit, et sélectionnez votre application.
Note
Snowflake CLI version 3.14.0 ou ultérieure est requise. La version 3.14+ utilise par défaut la syntaxe moderne CREATE STREAMLIT.
Créez un répertoire de projet avec la structure suivante :
Créez un fichier
snowflake.yml:Déployez l’application :
Essayer l’application¶
Ouvrez l’application dans votre navigateur.
Remplissez les champs du formulaire et sélectionnez Submit.
Le tableau de commentaires sous le formulaire se met à jour pour afficher votre nouvelle soumission, y compris votre adresse e-mail et un horodatage.
Soumettez quelques entrées supplémentaires, puis essayez de filtrer ou de trier les données de la table.
Développer l’application¶
Essayez d’ajouter un bouton de suppression à côté de chaque ligne ou un graphique indiquant la note moyenne par catégorie. Par exemple, ajoutez ce qui suit après le dataframe :
Si vous ajoutez plotly, déclarez-le dans un fichier requirements.txt :
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.
Nettoyage¶
Pour supprimer les ressources créées dans cet exemple, exécutez la commande SQL suivante :
Quelle est la prochaine étape ?¶
Créer votre application Streamlit : Découvrez toutes les options de création d’applications.
Personnaliser l’application Streamlit avec des informations utilisateur : Explorez tous les attributs utilisateur disponibles via
st.user.Gérer les secrets et configurer votre application Streamlit : Accédez aux secrets et aux services externes dans votre application.
Partage d’applications Streamlit in Snowflake : Partagez votre application avec d’autres utilisateurs.