À propos de Streamlit in Snowflake

Attention

Cette fonctionnalité est disponible pour les comptes des régions commerciales AWS et Microsoft Azure. La région AWS PrivateLink n’est pas prise 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 dispose des privilèges suivants sur le schéma et la base de données qui contiennent 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 mydb.myschema TO ROLE streamlit_creator;
GRANT USAGE ON DATABASE mydb TO ROLE streamlit_creator;
GRANT CREATE STREAMLIT ON SCHEMA mydb.myschema TO ROLE streamlit_creator;
GRANT CREATE STAGE ON SCHEMA mydb.myschema TO ROLE streamlit_creator;
Copy

Privilèges requis pour visualiser une application Streamlit

Pour visualiser une application Streamlit, vous devez avoir un compte Snowflake et être connecté. En outre, votre compte doit se voir attribuer un rôle avec le 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 rôle disposant du privilège MANAGE GRANTS sur le schéma doit accorder le privilège USAGE à l’aide de la commande GRANT <privilèges>, comme indiqué dans les exemples suivants :

GRANT USAGE ON DATABASE mydb.streamlit_db TO ROLE streamlit_user;
GRANT USAGE ON SCHEMA mydb.streamlit_schema TO ROLE streamlit_user;
GRANT USAGE on STREAMLIT mydb.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 la v1.22.0 des bibliothèques Streamlit. La prise en charge des versions ultérieures des bibliothèques Streamlit sera incluse au fur et à mesure de leur publication.

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.

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 Remarques sur les entrepôts virtuels pour plus d’informations.