Création d’une application Streamlit en utilisant SQL

Attention

Cette fonctionnalité est disponible pour les comptes des régions commerciales AWS et Microsoft Azure. AWS PrivateLink et Azure Private Link ne sont pas pris en charge.

Cette rubrique décrit comment déployer une application Streamlit dans Snowflake en utilisant des commandes SQL. Elle décrit comment déployer des applications Streamlit à une ou plusieurs pages.

Conditions préalables

Avant de déployer une application Streamlit en utilisant SQL, vous devez remplir les conditions préalables suivantes :

Création d’une application Streamlit en utilisant SQL

Pour créer une application Streamlit dans Snowflake en utilisant des commandes SQL, effectuez chacune des tâches suivantes :

Création des fichiers Streamlit sur votre système de fichiers local

Cette section explique comment créer une application Streamlit à une ou plusieurs pages. Pour des exemples de chaque type d’application, voir Exemple - Application Streamlit à page unique et Exemple - Application Streamlit multi-pages.

Pour créer les fichiers de votre application Streamlit, procédez comme suit :

  1. Sur votre système de fichiers local, créez votre application principale Streamlit.

  2. Facultatif : si vous créez une application Streamlit multi-pages, créez un dossier appelé pages sur votre système de fichiers local, et ajoutez les pages Streamlit supplémentaires dans ce sous-dossier.

  3. Facultatif : pour inclure des paquets externes dans votre application Streamlit, créez un fichier environment.yml. Pour plus de détails sur l’inclusion de paquets externes, consultez Installation de paquets en utilisant le fichier environment.yml.

Après avoir créé les pages Streamlit, la structure de votre répertoire devrait ressembler à ceci :

└── streamlit/
    └── environment.yml
    └── streamlit_main.py
    └── pages/
         └── data_frame_demo.py
         └── plot_demo.py
Copy

Note

Le fichier environment.yml et le sous-dossier pages facultatif doivent se trouver au même niveau que votre fichier principal Streamlit. Toute page Streamlit supplémentaire doit être incluse dans le sous-dossier pages.

Chargement de vos fichiers Streamlit vers une zone de préparation nommée

Pour créer une application Streamlit dans Streamlit in Snowflake, vous devez charger vos fichiers d’application dans une zone de préparation nommée.

Pour charger des fichiers d’application, procédez de l’une des manières suivantes :

  • Chargez les fichiers d’application à l’aide de Snowsight, comme décrit dans Mise des fichiers en zone de préparation à l’aide de Snowsight

  • Chargez les fichiers d’application en utilisant SnowSQL, comme indiqué dans l’exemple suivant :

    PUT file:///<path_to_your_root_folder>/streamlit/streamlit_main.py @streamlit_db.streamlit_schema.streamlit_stage overwrite=true auto_compress=false;
    PUT file:///<path_to_your_root_folder>/streamlit/environment.yml @streamlit_db.streamlit_schema.streamlit_stage overwrite=true auto_compress=false;
    PUT file:///<path_to_your_root_folder>/streamlit/pages/streamlit_page_2.py @streamlit_db.streamlit_schema.streamlit_stage/pages/ overwrite=true auto_compress=false;
    PUT file:///<path_to_your_root_folder>/streamlit/pages/streamlit_page_3.py @streamlit_db.streamlit_schema.streamlit_stage/pages/ overwrite=true auto_compress=false;
    
    Copy

Création d’un objet STREAMLIT

Un objet STREAMLIT est un objet de base de données dans Snowflake qui encapsule les fichiers requis par votre application Streamlit.

  1. Pour créer un objet STREAMLIT, exécutez la commande CREATE STREAMLIT, comme indiqué dans l’exemple suivant :

    CREATE STREAMLIT hello_streamlit
    ROOT_LOCATION = '@streamlit_db.streamlit_schema.streamlit_stage'
    MAIN_FILE = '/streamlit_main.py'
    QUERY_WAREHOUSE = my_warehouse;
    
    Copy

    Cette commande crée un objet STREAMLIT nommé hello_streamlit en fonction du chemin et du fichier spécifiés dans ROOT_LOCATION et MAIN_FILE.

    Note

    Bien que la clause QUERY_WAREHOUSE soit facultative, vous devez spécifier un entrepôt de requêtes pour pouvoir exécuter l’application Streamlit dans Snowflake.

  2. Pour vérifier que l’objet Streamlit a été créé, exécutez la commande SHOW STREAMLITS, comme indiqué dans l’exemple suivant :

    SHOW STREAMLITS;
    
    Copy

Installation de paquets en utilisant le fichier environment.yml

Pour installer des paquets Python supplémentaires dans votre application Streamlit :

  1. Ajoutez un fichier environment.yml à l’application.

  2. Pour télécharger le fichier à l’emplacement de la zone de préparation spécifié par le paramètre ROOT_LOCATION de l’objet STREAMLIT, exécutez la commande PUT.

    Les paquets répertoriés dans le fichier environment.yml sont installés à partir du canal Snowflake Anaconda.

L’exemple suivant environment.yml montre comment installer scikit-learn dans l’environnement Streamlit :

name: sf_env
channels:
- snowflake
dependencies:
- scikit-learn
Copy

Les propriétés name et channels sont obligatoires. De plus, la clé - snowflake est requise sous la propriété channels.

Note

Vous ne pouvez installer que les paquets répertoriés dans le canal Anaconda Snowflake. Streamlit dans Snowflake ne prend pas en charge les canaux Anaconda externes.

Visualisation d’une application Streamlit

Pour voir les informations d’un objet STREAMLIT, exécutez la commande DESCRIBE STREAMLIT comme indiqué dans l’exemple suivant :

DESC STREAMLIT hello_streamlit;
Copy

Pour voir votre application Streamlit dans Snowsight, sélectionnez Visualiser une application Streamlit.

Modification d’un objet STREAMLIT existant

Après avoir créé un objet STREAMLIT, utilisez la commande ALTER STREAMLIT pour modifier les différentes propriétés décrites dans les sections suivantes.

Renommer un objet STREAMLIT

Pour renommer un objet STREAMLIT, utilisez la clause RENAME TO de la commande ALTER STREAMLIT comme le montre l’exemple suivant :

ALTER STREAMLIT hello_streamlit RENAME TO hello_snowflake;
Copy

Modifier la zone de préparation ou le fichier principal d’un objet STREAMLIT

Pour modifier le chemin d’accès à la zone de préparation d’un objet STREAMLIT, utilisez la commande ALTER STREAMLIT pour définir la propriété ROOT_LOCATION de l’objet, comme le montre l’exemple suivant :

ALTER STREAMLIT hello_streamlit SET ROOT_LOCATION '@snowflake_db.snowflake_schema.snowflake_stage'
Copy

Pour modifier le fichier Streamlit principal dans un objet STREAMLIT, utilisez la commande ALTER STREAMLIT pour définir la propriété MAIN_FILE de l’objet, comme le montre l’exemple suivant :

ALTER STREAMLIT hello_streamlit SET MAIN_FILE 'snowflake_main.py'
Copy

Modifier l’entrepôt de requêtes attribué à un objet STREAMLIT

Pour ajouter un entrepôt de requêtes ou modifier l’entrepôt de requêtes actuel pour un objet STREAMLIT, utilisez la commande ALTER STREAMLIT pour définir la propriété QUERY_WAREHOUSE de l’objet, comme le montre l’exemple suivant :

ALTER STREAMLIT hello_streamlit SET QUERY_WAREHOUSE my_new_warehouse;
Copy

Répertorier les objets STREAMLIT disponibles

Pour dresser la liste des applications Streamlit disponibles pour votre rôle actuel, exécutez la commande SHOW STREAMLITS, comme indiqué dans l’exemple suivant :

SHOW STREAMLITS;
Copy

Supprimer un objet STREAMLIT

Pour supprimer un objet STREAMLIT, exécutez la commande DROP STREAMLIT, comme indiqué dans l’exemple suivant :

DROP STREAMLIT hello_streamlit;
Copy