À propos de Streamlit in Snowflake

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 utiliser Streamlit in Snowflake pour développer et exécuter des applications Streamlit.

À propos de Streamlit in Snowflake

Streamlit est une bibliothèque Python open-source qui facilite la création et le partage d’applications Web personnalisées pour le machine learning et la science des données. En utilisant Streamlit, vous pouvez rapidement créer et déployer des applications de données puissantes. Pour plus d’informations sur la bibliothèque open-source, voir la documentation de la bibliothèque Streamlit.

Streamlit in Snowflake aide les développeurs à créer, déployer et partager en toute sécurité des applications Streamlit sur le Cloud de données de Snowflake. En utilisant Streamlit in Snowflake, vous pouvez concevoir des applications qui traitent et utilisent des données dans Snowflake sans déplacer les données ou le code de l’application vers un système externe.

Conditions préalables à l’utilisation de Streamlit in Snowflake

Pour utiliser Streamlit in Snowflake assurez-vous de respecter les conditions préalables suivantes :

Privilèges requis pour créer et utiliser une application Streamlit

Au sein de Streamlit in Snowflake , une application Streamlit est un objet sécurisé qui adhère au cadre de contrôle d’accès Snowflake. Les applications Streamlit utilisent un modèle de permission basé sur les droits du propriétaire. Voir Comprendre les droits du propriétaire et les applications Streamlit in Snowflake pour plus de détails.

Un éditeur d’application et le propriétaire du schéma contenant l’application Streamlit peuvent déterminer quels rôles ont la permission d’utiliser l’application. Les utilisateurs peuvent interagir avec l’application et voir tout ce qui est affiché par l’application Streamlit. Les utilisateurs ont la même vision de l’application que le propriétaire.

Reportez-vous à Partagez une application Streamlit pour plus d’informations.

Privilèges requis pour créer une application Streamlit

Les applications Streamlit sont des objets de niveau schéma.

Pour créer et modifier une application Streamlit en utilisant Streamlit in Snowflake, vous devez utiliser un rôle qui possède soit le privilège OWNERSHIP sur le schéma, soit les deux privilèges suivants :

  • Accordé(s) sur la base de données qui contient l’application Streamlit :

    • USAGE

  • Accordé(s) sur le schéma qui contient l’application Streamlit :

    • USAGE

    • CREATE STREAMLIT

    • CREATE STAGE

Utilisez la commande GRANT <privilèges> pour accorder ces privilèges à un rôle, comme le montrent les exemples suivants :

GRANT USAGE ON SCHEMA streamlit_db.streamlit_schema TO ROLE streamlit_creator;
GRANT USAGE ON DATABASE streamlit_db TO ROLE streamlit_creator;
GRANT CREATE STREAMLIT ON SCHEMA streamlit_db.streamlit_schema TO ROLE streamlit_creator;
GRANT CREATE STAGE ON SCHEMA streamlit_db.streamlit_schema TO ROLE streamlit_creator;
Copy

Si une autorisation future est définie sur la base de données ou le schéma, assurez-vous que l’utilisateur crée l’application Streamlit en utilisant le rôle défini dans l’autorisation future.

Privilèges requis pour visualiser une application Streamlit

Pour visualiser une application Streamlit, vous devez avoir un compte Snowflake et être connecté. De plus, vous devez utiliser un rôle qui bénéficie du privilège USAGE sur les éléments suivants :

  • La base de données qui contient l’application Streamlit.

  • Le schéma qui contient l’application Streamlit.

  • L’application Streamlit.

Dans la plupart des cas, lorsque le propriétaire d’applications partage une application Streamlit avec un autre rôle, le privilège USAGE est automatiquement accordé au nouveau rôle. Cependant, si une application Streamlit est créée dans un schéma avec MANAGED ACCESS, le privilège USAGE doit être accordé manuellement au nouveau rôle.

Le propriétaire du schéma ou un utilisateur avec le rôle disposant du privilège MANAGE GRANTS doit accorder le privilège USAGE à l’aide de la commande GRANT <privilèges> comme indiqué dans les exemples suivants :

GRANT USAGE ON DATABASE streamlit_db TO ROLE streamlit_user;
GRANT USAGE ON SCHEMA streamlit_db.streamlit_schema TO ROLE streamlit_user;
GRANT USAGE on STREAMLIT streamlit_db.streamlit_schema.streamlit_app to ROLE streamlit_user;
Copy

Note

Les autorisations futures ne sont pas prises en charge pour les objets STREAMLIT.

Versions prises en charge des bibliothèques Streamlit

Streamlit in Snowflake prend en charge les versions 1.22.0 et 1.26.0 de la bibliothèque Streamlit. La prise en charge des nouvelles versions de la bibliothèque Streamlit sera incluse ultérieurement.

Pour consulter les notes de version de chaque version, voir le journal des modifications de la bibliothèque Streamlit. Notez que certaines fonctionnalités de la bibliothèque Streamlit open source ouvert ne sont pas prises en charge dans Streamlit in Snowflake. Voir Fonctions Streamlit non prises en charge.

Sélectionnez la version de la bibliothèque Streamlit

Pour chaque application Streamlit in Snowflake, vous pouvez sélectionner la version de la bibliothèque Streamlit dans Snowsight ou épingler la version dans le fichier environment.yml de l’application. Si vous ne précisez pas la version, la dernière version disponible est utilisée.

Snowflake recommande d’épingler une version de Streamlit pour éviter que l’application ne soit mise à niveau lorsqu’une nouvelle version de Streamlit est disponible dans le canal Snowflake Anaconda.

Sélectionnez la version Streamlit dans l’application Streamlit de Snowsight.

Pour sélectionner la version à utiliser dans l’application Streamlit dans Snowsight :

  1. Connectez-vous à Snowsight en tant qu’utilisateur ayant le privilège CREATE STREAMLIT.

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

  3. Sélectionnez l’application Streamlit.

  4. Sélectionnez Edit.

  5. Dans la partie supérieure de l’éditeur Streamlit, sélectionnez Packages.

  6. Sélectionnez la version de Streamlit.

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

Pour épingler la version Streamlit dans le fichier environment.yml , utilisez l’exemple suivant :

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

Paquets externes pris en charge

Par défaut, Streamlit in Snowflake inclut les paquets python, streamlit, et snowflake-snowpark-python préinstallés dans votre environnement. L’environnement a également accès aux dépendances requises par ces paquets.

Applications Streamlit in Snowflake exécutées en Python 3.8.

Vous pouvez installer des paquets supplémentaires dans votre application Streamlit. Consultez le canal Anaconda Snowflake pour obtenir une liste des paquets pris en charge.

Consultez les rubriques suivantes pour obtenir des informations sur l’intégration d’un paquet pris en charge dans votre application Streamlit :

Remarques relatives à la simultanéité pour les Streamlit in Snowflake

Streamlit in Snowflake fournit une limitation et une mise à l’échelle automatique des sessions dans Snowflake pour gérer les périodes de demande accrue pour une application Streamlit. Streamlit in Snowflake utilise une combinaison d’instances de services Cloud et d’instances d’entrepôts virtuels. Consultez Concepts clés et architecture pour plus d’informations.

Pour maintenir l’intégrité de Snowflake, Streamlit in Snowflake impose des limites par instance, par compte et par utilisateur sur le nombre de sessions Streamlit simultanées qu’une instance de services Cloud peut gérer. Les sessions Streamlit sont réparties entre ces instances jusqu’à ce que toutes les instances atteignent leur limite de sessions simultanées. Lorsqu’une limite est atteinte, l’instance est redimensionnée automatiquement pour prendre en charge des sessions supplémentaires.

Note

Les demandes des utilisateurs de l’application Streamlit peuvent être temporairement limitées. Les utilisateurs peuvent voir un message « Veuillez patienter » lorsque la mise à l’échelle automatique est lancée.

Remarques relatives à Streamlit in Snowflake

Streamlit in Snowflake nécessite un entrepôt virtuel pour exécuter une application Streamlit et exécuter des requêtes SQL. Pour exécuter une application Streamlit, vous devez sélectionner un seul entrepôt virtuel pour exécuter à la fois l’application elle-même et ses requêtes. Cet entrepôt reste actif tant que la connexion WebSocket de l’application est active. La connexion WebSocket, qui maintient l’entrepôt virtuel de l’application Streamlit actif, expire environ 15 minutes après la dernière utilisation de l’application.

Pour conserver les crédits, vous pouvez suspendre l’entrepôt virtuel. Vous pouvez également fermer la page Web exécutant l’application, ce qui permet à l’entrepôt virtuel en cours d’exécution de se suspendre automatiquement.

Lignes directrices pour la sélection d’un entrepôt dans Streamlit in Snowflake

Lorsque vous exécutez une application Streamlit dans Streamlit in Snowflake, de nombreux facteurs peuvent affecter les performances, notamment la complexité de l’application Streamlit, la disponibilité des entrepôts, la latence et le coût. Les sections suivantes fournissent des orientations générales pour l’utilisation des entrepôts virtuels dans Streamlit in Snowflake.

Utiliser des entrepôts plus petits

Lorsque vous exécutez une application Streamlit dans Streamlit in Snowflake vous devez sélectionner l’entrepôt le plus petit possible.

Lorsqu’il est en cours d’exécution, un entrepôt conserve un cache des paquets Python utilisés par une application Streamlit. La mise en cache des paquets Python améliore les performances lors des chargements ultérieurs des applications en utilisant la version mise en cache d’un paquet au lieu de télécharger à nouveau les paquets. Le cache est supprimé lorsque l’entrepôt est suspendu, ce qui peut ralentir le chargement de l’application après la reprise de l’entrepôt. Au fur et à mesure que l’entrepôt repris fonctionne et exécute davantage d’applications, le cache des paquets est reconstruit. Les applications qui sont en mesure de tirer parti du cache verront leurs performances de chargement s’améliorer.

La facturation à la seconde et la suspension automatique permettent de commencer avec des entrepôts plus petits, puis d’ajuster la taille de l’entrepôt en fonction de la charge de travail de l’application Streamlit. Vous pouvez augmenter la taille d’un entrepôt à tout moment. Consultez Modifier l’entrepôt d’une application Streamlit pour plus d’informations.

Utiliser les entrepôts dédiés

Lorsque vous utilisez Streamlit in Snowflake, Snowflake recommande d’utiliser un entrepôt dédié à l’exécution des applications Streamlit. Cela vous permet d’isoler les coûts de fonctionnement d’une application Streamlit. Un entrepôt dédié peut également améliorer le temps de chargement de l’application, car l’entrepôt n’a pas à gérer d’autres charges de travail.

Consultez Considérations relatives aux entrepôts pour plus d’informations.

Astuce

Pour éviter la suspension de l’entrepôt pendant l’initialisation, envisagez de définir la suspension automatique à un minimum de 30 secondes.