Connecter Streamlit à Snowflake : Libérer la puissance des applications Web orientées données
Published on
Si vous évoluez dans le monde de l'analyse de données, du développement logiciel, ou si vous êtes simplement un passionné de technologie intéressé par la création d'applications Web avec Python, ce guide complet est fait pour vous. Avec la croissance du domaine des données, la nécessité d'outils efficaces pour les gérer et en extraire des informations précieuses ne cesse d'augmenter. C'est là que Streamlit et Snowflake entrent en jeu.
Streamlit, un framework Web basé sur Python en plein essor et peu codé, vous permet de créer des applications Web interactives et orientées données avec un minimum de code. D'autre part, Snowflake, une plateforme d'entreposage de données basée sur le cloud, offre une solution robuste pour le stockage, le calcul et l'analyse de données. Ensemble, ils forment une combinaison impressionnante qui apporte de la commodité et de l'efficacité dans le monde des données.
Vous souhaitez créer gratuitement une application d'analyse de données et de visualisation de données avec Streamlit ?
PyGWalker (opens in a new tab) est une bibliothèque Python qui vous permet d'intégrer facilement une interface utilisateur similaire à Tableau dans votre propre application Streamlit, sans effort. Regardez cette vidéo incroyable réalisée par Sven de Coding is Fun (opens in a new tab) qui démontre les étapes détaillées pour renforcer votre application Streamlit avec cette puissante bibliothèque de visualisation de données en Python !
Un grand merci à Sven et à sa contribution exceptionnelle (opens in a new tab) à la communauté PyGWalker !
De plus, vous pouvez également consulter la page GitHub de PyGWalker (opens in a new tab) pour plus d'exemples de PyGWalker.
Cadre d'application natif Snowflake
Avant de commencer notre aventure, faisons d'abord une halte au cœur de l'univers de Snowflake - le cadre d'application natif. Imaginez une boîte à outils regorgeant de fonctionnalités telles que les procédures stockées, les tâches, les flux, les UDF, Snowpark et bien d'autres. C'est exactement de quoi il s'agit !
Grâce à cet arsenal d'outils, les fournisseurs d'applications peuvent :
- Utiliser les fonctionnalités centrales de Snowflake pour créer leurs applications
- Les distribuer et les monétiser sur la place de marché Snowflake (pensez-y comme à un App Store !)
- Déployer les applications directement dans le compte Snowflake d'un client.
Une fois qu'une application est créée, les capacités robustes de partage sécurisé de données de Snowflake peuvent la distribuer dans le monde entier via la place de marché Snowflake. Les utilisateurs peuvent ensuite déployer cette application directement à partir de la place de marché dans leur compte Snowflake.
Le cadre d'application natif n'est pas uniquement un ensemble de fonctionnalités, mais une porte d'accès à un monde de possibilités. Lorsqu'il est associé à un framework UX peu codé tel que Streamlit, ce mélange fait des étincelles.
Streamlit dans Snowflake
En nous plongeant dans le monde de Streamlit, ce framework gratuit et open source est un vent de fraîcheur pour ceux qui souhaitent créer de magnifiques applications Web pour l'apprentissage automatique et la science des données.
Créé dans le but de simplifier la vie des scientifiques des données ou des ingénieurs en apprentissage automatique, Streamlit permet de créer facilement des applications fantastiques avec seulement quelques lignes de code.
Lorsqu'il est intégré à Snowflake (intelligemment appelé SiS), il vous permet d'écrire du code Streamlit directement dans Snowflake, en utilisant Python. Vous créez simplement un objet Streamlit (comme les autres objets de schéma dans Snowflake), donnez un nom à votre application, attribuez un entrepôt et décidez de l'emplacement de l'application. Comme il est intégré de manière transparente à Snowflake, les contrôles d'accès basés sur les rôles sont appliqués de manière cohérente.
Le petit plus ? Vous pouvez déployer votre application Streamlit, la partager avec d'autres personnes à l'aide d'un lien, et même la visualiser sur votre appareil mobile. Pas mal, non ?
Préparation à l'intégration Streamlit + Snowflake
Créer une base de données Snowflake
Avant de vous plonger dans la création de l'application Web, il est essentiel de configurer une base de données Snowflake à laquelle nous connecterons plus tard notre application Streamlit. Suivez les étapes ci-dessous pour créer une base de données Snowflake :
- Inscrivez-vous à un compte Snowflake sur https://signup.snowflake.com (opens in a new tab).
- Consultez votre e-mail de bienvenue "Welcome to Snowflake !" pour obtenir l'URL de votre compte Snowflake. Utilisez le bouton `SE CONNECTER À SNOWFLAKE' ou copiez l'URL de votre compte dans votre navigateur.
- Saisissez vos informations d'identification Snowflake.
- Une fois connecté, vous arriverez sur le panneau Worksheets.
- Pour créer une nouvelle feuille de travail SQL, suivez les instructions fournies dans l'interface Snowflake.
- Saisissez la requête SQL suivante dans la zone de requête pour créer une base de données
PETS
simple et la remplir avec des données :
CREATE DATABASE PETS;
CREATE TABLE MYTABLE (
NAME varchar(80),
PET varchar(80)
);
INSERT INTO MYTABLE VALUES ('Mary', 'dog'), ('John', 'cat'), ('Robert', 'bird');
SELECT * FROM MYTABLE;
- Après avoir exécuté la requête, la base de données
PETS
sera créée. Retournez à la page principale. - Depuis la page principale, cliquez sur l'onglet Data pour afficher la base de données
PETS
que nous avons créée.
Configuration de l'environnement
Passons maintenant à la configuration de notre environnement de développement avec Anaconda.
conda create -n snowpark python=3.8
conda activate snowpark
pip install snowflake-snowpark-python streamlit
N'oubliez pas que vous pouvez désactiver l'environnement conda après votre session de codage avec la commande conda deactivate
.
Passons maintenant à la création des répertoires et fichiers pour notre application Streamlit :
Tout d'abord, nous créons un nouveau répertoire pour notre projet. Ouvrez votre terminal et tapez :
mkdir streamlit-snowflake-app && cd streamlit-snowflake-app
touch main.py secrets.py .gitignore
- Le fichier
main.py
est l'endroit où nous écrirons notre application Streamlit. - Le fichier
secrets.py
stockera nos informations d'accès Snowflake. - Le fichier
.gitignore
s'assurera que nous n'ajoutons pas accidentellement ces informations sensibles à un dépôt public.
Construisons une application Streamlit avec Snowflake
Maintenant, passons à la partie excitante : la création de l'application Streamlit. Ici, nous interrogerons la base de données PETS
que nous avons créée précédemment et afficherons les résultats dans notre application Streamlit.
- Importez les bibliothèques nécessaires dans le fichier
main.py
:
import streamlit as st
from snowflake.snowpark import Session
from secrets import SNOWFLAKE_ACCOUNT, SNOWFLAKE_USER, SNOWFLAKE_PASSWORD
- Établissez une session Snowflake en utilisant les informations d'identification stockées dans
secrets.py
:
session = Session(url=SNOWFLAKE_ACCOUNT, user=SNOWFLAKE_USER, password=SNOWFLAKE_PASSWORD)
- Récupérez les données de Snowflake :
df = session.sql("SELECT * FROM PETS.MYTABLE").to_pandas()
4. Afficher les données sur Streamlit:
```python
st.write(df)
- Stocker les écrans dans
secrets.toml
touch secrets.toml
Dans secrets.toml
, ajoutez vos identifiants Snowflake:
[secrets]
SNOWFLAKE_ACCOUNT = "votre_compte"
SNOWFLAKE_USER = "votre_nom_utilisateur"
SNOWFLAKE_PASSWORD = "votre_mot_de_passe"
Mettez à jour le fichier main.py
pour utiliser la gestion des secrets de Streamlit:
session = Session(url=st.secrets["SNOWFLAKE_ACCOUNT"], user=st.secrets["SNOWFLAKE_USER"], password=st.secrets["SNOWFLAKE_PASSWORD"])
N'oubliez pas de mettre à jour le fichier .gitignore également.
Voilà! Vous venez de créer votre première application Streamlit qui se connecte à une base de données Snowflake. Pour exécuter l'application, utilisez la commande streamlit run main.py
dans votre terminal.
Comment déployer une application Streamlit
Avec l'application prête et les secrets gérés en toute sécurité, il est temps de partager votre travail avec le monde. Streamlit propose une plateforme appelée Streamlit Share pour déployer des applications:
- Soumettez votre projet à un référentiel GitHub public (en excluant le fichier
secrets.toml
). - Rendez-vous sur share.streamlit.io (opens in a new tab) et cliquez sur Déployer une application.
- Sélectionnez votre référentiel et la branche, puis spécifiez
main.py
comme fichier d'application. - Dans la section Secrets, cliquez sur Ajouter un secret et saisissez les paires clé-valeur de
secrets.toml
. - Cliquez sur Déployer. Streamlit Share se chargera du reste!
Conclusion
La connexion de Streamlit à Snowflake ouvre un monde de possibilités pour créer des applications web interactives et efficaces avec Python. Ce guide vous a montré comment intégrer ces deux puissantes plateformes étape par étape, de la configuration d'une base de données Snowflake et d'une application Streamlit à la gestion des secrets et au déploiement de l'application. Avec un peu de créativité, vous pouvez adapter ce processus à différentes applications et flux de travail.
Maintenant que vous êtes armé de ces connaissances, créez des applications axées sur les données qui font la différence.
Vous souhaitez connecter votre base de données Snowflake à RATH dès maintenant ? Consultez la documentation de RATH pour un guide étape par étape de l'intégration Snowflake : Guide étape par étape pour l'intégration Snowflake.
Au-delà de Snowflake, RATH prend en charge une large gamme de sources de données. Voici quelques-unes des principales solutions de base de données auxquelles vous pouvez vous connecter à RATH :
Intéressé ? Essayez dès maintenant RATH sur le site web de RATH (opens in a new tab).
Questions fréquemment posées
Qu'est-ce que Snowflake dans Streamlit ?
Snowflake in Streamlit (SiS) fait référence à l'intégration de Streamlit au sein de la plateforme Snowflake. SiS permet aux utilisateurs d'écrire du code Streamlit directement dans Snowflake, en tirant parti des capacités de stockage, de traitement et de sécurité de Snowflake.
Est-ce que Streamlit appartient à Snowflake ?
Non, Streamlit est un projet open-source indépendant et n'appartient pas à Snowflake. Streamlit est largement utilisé dans la communauté de la science des données pour créer des applications web interactives, tandis que Snowflake est une plateforme de données basée sur le cloud.
Qu'est-ce que Snowpark pour Python et Streamlit ?
Snowpark est une fonctionnalité de Snowflake qui permet aux développeurs d'écrire du code dans différents langages de programmation. Snowpark pour Python permet aux utilisateurs d'écrire du code Python et de l'intégrer aux capacités de traitement des données de Snowflake. Streamlit dans Snowflake exploite Snowpark pour Python afin de permettre aux utilisateurs d'écrire du code Streamlit directement dans Snowflake, créant ainsi des applications de données interactives.