Créer et déployer des applications Streamlit à l’aide de SQL

Cette rubrique décrit comment déployer une application Streamlit dans Snowflake en utilisant des commandes SQL. En commençant par un environnement de développement local, vous pouvez copier vos fichiers d’application Streamlit vers une zone de préparation nommée dans Snowflake et créer un objet Streamlit à partir de ces fichiers.

Créer une application Streamlit avec SQL

Avant de créer une application Streamlit à l’aide de SQL, assurez-vous que vous remplissez les conditions préalables requises.

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

En option : Créer des fichiers Streamlit sur votre système de fichiers local

Cette section décrit comment créer un ensemble local de fichiers sources d’application et les mettre en zone de préparation dans Snowflake. Dans la section suivante, si vous ne disposez pas de fichiers sources en zone de préparation lorsque vous créez votre objet STREAMLIT, un ensemble par défaut de fichiers sources est copié dans votre objet STREAMLIT à la place.

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

  2. En option : Pour configurer votre environnement de déploiement et spécifier les dépendances, créez un fichier environment.yml.

    Si vous n’incluez pas ce fichier, votre application fonctionnera avec les dernières versions de Python et de Streamlit dans Streamlit in Snowflake. Pour plus d’informations sur les dépendances des applications, voir Gérer des paquets en utilisant le fichier environment.yml.

Après avoir créé l’application Streamlit, la structure de votre répertoire devrait ressembler à ceci :

project_directory/
├── .streamlit/
│   └── config.toml
├── environment.yml
└── streamlit_app.py
Copy

Note

Streamlit in Snowflake prend en charge les applications Streamlit de plusieurs pages. Cet exemple ne montre qu’une application à page unique, mais vous pouvez ajouter un répertoire de pages/ ou utiliser st.navigation pour créer une application de plusieurs pages. Pour en savoir plus sur les applications de plusieurs pages, consultez Vue d’ensemble des applications de plusieurs pages dans la documentation open source Streamlit.

Charger 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_project_directory>/streamlit/streamlit_app.py @streamlit_db.streamlit_schema.streamlit_stage overwrite=true auto_compress=false;
      PUT file:///<path_to_your_project_directory>/streamlit/environment.yml @streamlit_db.streamlit_schema.streamlit_stage overwrite=true auto_compress=false;
      PUT file:///<path_to_your_project_directory>/streamlit/.streamlit/config.toml @streamlit_db.streamlit_schema.streamlit_stage/.streamlit/ overwrite=true auto_compress=false;
      
      Copy

Créer 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
    FROM '@streamlit_db.streamlit_schema.streamlit_stage'
    MAIN_FILE = 'streamlit_app.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 FROM 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. En option : Pour vérifier que l’objet Streamlit a été créé, exécutez la commande SHOW STREAMLITS :

    SHOW STREAMLITS;
    
    Copy
  3. Pour terminer l’initialisation de l’application, le rôle de propriétaire doit soit voir l’application dans Snowsight ou exécuter la commande suivante :

    ALTER STREAMLIT hello_streamlit ADD LIVE VERSION FROM LAST;
    
    Copy

Gérer des paquets en utilisant le fichier environment.yml

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

  1. Créer un fichier environment.yml sur votre système de fichiers local.

  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.

Épinglez la version Streamlit dans le fichier environment.yml.

  • Pour épingler la version Streamlit dans le fichier environment.yml, inclure une dépendance streamlit comme indiqué dans l’exemple suivant :

    name: sf_env
    channels:
    - snowflake
    dependencies:
    - scikit-learn
    - streamlit=1.31.1
    
    Copy

Visualiser 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.

Gérer les objets STREAMLIT

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