Configurer le calcul pour les notebooks Snowflake dans les espaces de travail

Configuration du calcul

Lorsqu’un utilisateur exécute un notebook, l’utilisateur crée un service de notebooks géré par Snowflake pour héberger le noyau du notebook et exécuter le code.

Lors de la création d’un service de notebooks, les utilisateurs peuvent configurer la version Python, la version Snowflake Container Runtime, le pool de calcul, le délai d’inactivité, les intégrations d’accès externes, et éventuellement personnaliser le nom du service.

Chaque service de notebooks est limité à un seul utilisateur et occupe un seul nœud du pool de calcul sélectionné. Tous les notebooks connectés au même service partagent les ressources de calcul sur ce nœud. Si un notebook nécessite des ressources de calcul dédiées, créez un service de notebooks distinct, et évitez d’y attacher des notebooks supplémentaires.

../../../_images/notebook-compute-diagram1.png

Gestion d’un service de notebooks

Suspendre

Vous pouvez suspendre manuellement un service de notebooks en cliquant sur Connected, en survolant le nom du service, et en sélectionnant Suspend (icône de pause).

Vous pouvez également attendre que le service atteigne son délai d’inactivité défini, et il s’arrêtera automatiquement. Pour plus de détails sur la manière dont le délai d’inactivité est calculé, consultez Délai d’inactivité.

La suspension d’un service déconnecte tous les notebooks qui lui sont connectés, efface les états en mémoire, et supprime tous les paquets et toutes les variables. Les fichiers créés à partir du code et de la ligne de commande vers le système de fichiers de l’espace de travail et le répertoire /tmp sont également perdus. Pour plus d’informations sur les limites du système de fichiers, consultez Utilisation du système de fichiers.

Reprendre

Pour reprendre un service suspendu, connectez un notebook à celui-ci ou exécutez un notebook qui y était précédemment connecté.

Détruire

Pour supprimer un service, procédez comme suit :

  1. Connectez-vous à Snowsight.

  2. Sélectionnez le menu déroulant Connected.

  3. Sélectionnez Manage service pour accéder à la page Services & jobs.

  4. Cliquez sur les points de suspension pour trouver le service que vous souhaitez supprimer, puis sélectionnez Drop.

Modification d’un service de notebooks

Un service de notebooks peut être mis à jour après avoir été créé pour être modifié :

  1. Intégration d’accès externes.

  2. Version de l’exécution.

  3. Délai d’inactivité.

Les modifications apportées à (1) ou (2) sont suspendues, puis redémarrent le service. La modification du délai d’inactivité ne redémarre pas le service.

Délai d’attente

Chaque service de notebooks définit son propre délai d’inactivité. Le service est suspendu lorsque le temps d’inactivité est atteint. Le temps d’inactivité commence dès que toutes les cellules en cours d’exécution dans tous les notebooks connectés sont terminées. Si plusieurs notebooks partagent le même service, le temps d’inactivité ne démarre que lorsque le dernier notebook devient inactif (aucune cellule en cours d’exécution).

Utilisation du crédit

L’exécution d’un notebook peut entraîner des crédits provenant de deux sources :

  • Pool de calcul : Exécute les noyaux des notebooks et les processus Python.

    Les crédits s’accumulent lorsque le service du notebook est dans l’état RUNNING, jusqu’à ce qu’il soit suspendu manuellement, ou suspendu en raison d’un délai d’inactivité. Tous les notebooks connectés au même service partagent les crédits du pool de calcul consommés.

  • Entrepôt de requêtes : Utilisé pour les requêtes SQL ou les calculs pushdown Snowpark déclenchés par le notebook.

    Les crédits ne s’accumulent que lorsque les requêtes SQL ou les opérations de calcul pushdown Snowpark s’exécutent sur l’entrepôt. Pour optimiser les coûts, activez la suspension automatique sur l’entrepôt de requêtes. Les notebooks qui n’invoquent aucune requête SQL ou aucun calcul pushdown Snowpark n’engendrent aucun crédit d’entrepôt de requêtes.

Pour plus d’informations sur l’optimisation des coûts et la maximisation de la valeur, consultez Optimisation des coûts.

Gouvernance des services de notebooks

Les services de notebooks sont personnels à chaque utilisateur, utilisés exclusivement pour l’exécution de notebooks, et situés dans la base de données personnelle de l’utilisateur (PDB).

Privilèges

Propriété

Le OWNER_ROLE est NULL, car Snowflake gère ces services.

Privilèges des utilisateurs

L’utilisateur créateur bénéficie des privilèges suivants :

  • USAGE

  • OPERATE

  • DROP

  • MONITOR

Privilèges d’administrateur

ACCOUNTADMIN bénéficie des privilèges suivants :

  • USAGE

  • OPERATE

  • DROP

Cela permet une gestion et une surveillance complètes de tous les services de notebooks.

Contrôle administrateur et surveillance des coûts sur les pools de calcul

Les administrateurs gèrent l’accès des utilisateurs et les coûts principalement via les pools de calcul associés aux services de notebooks.

Un rôle d’utilisateur doit disposer du privilège USAGE sur un pool de calcul pour créer un service de notebooks et exécuter des notebooks. En outre, le pool de calcul doit autoriser le type de charge de travail NOTEBOOK via le paramètre ALLOWED_SPCS_WORKLOAD_TYPES. La valeur par défaut pour ce paramètre est ALL, qui comprend NOTEBOOK.

Pour en savoir plus sur les charges de travail des pools de calcul, consultez Snowpark Container Services : utilisation des pools de calcul.

Désactiver l’exécution des notebooks

Les administrateurs peuvent restreindre l’exécution des notebooks dans les espaces de travail de plusieurs manières :

Supprimer USAGE sur le pool de calcul

La suppression du privilège USAGE pour un rôle sur un pool de calcul empêche ce rôle d’utiliser ce pool de calcul, y compris d’exécuter des notebooks.

Restreindre les types de charge de travail sur tous les pools de calcul

Les administrateurs peuvent restreindre l’exécution des notebooks tout en autorisant d’autres charges de travail à l’aide de deux paramètres au niveau du compte. Tous les rôles du compte seront affectés.

  • Excluez NOTEBOOK du paramètre ALLOWED_SPCS_WORKLOAD_TYPES.

  • Définissez NOTEBOOK en tant que paramètre DISALLOWED_SPCS_WORKLOAD_TYPES.

Tout rôle disposant de USAGE sur le pool de calcul peut toujours exécuter d’autres types de charges de travail autorisés, comme spécifié par les paramètres.

Surveiller les coûts

Les administrateurs peuvent surveiller la consommation par pool de calcul. Snowflake recommande de provisionner un pool de calcul unique pour chaque rôle afin de voir la consommation au niveau du rôle. Pour gérer les dépenses, les administrateurs peuvent appliquer des budgets sur des pools de calcul spécifiques.

Afficher les services gérés par les notebooks

Utilisez la commande SHOW SERVICES :

SHOW SERVICES OF TYPE NOTEBOOK;
Copy

Supprimer un service de notebooks

Les administrateurs peuvent supprimer un service de notebooks via SQL :

DROP USER$DB_NAME.PUBLIC.[SERVICE_NAME];
Copy

Les administrateurs peuvent également utiliser Snowsight :

  1. Connectez-vous à Snowsight.

  2. Dans le menu de navigation, sélectionnez Monitoring » Services & jobs.

  3. Cliquez sur les points de suspension, puis sélectionnez Drop.

Maintenance des services

Les services de notebooks sont un type de Snowpark Container Services et nécessitent une maintenance périodique pour rester sécurisés et à jour. La maintenance prend généralement environ cinq minutes et suspend et redémarre le service de notebooks. Consultez Gestion d’un service de notebooks pour plus de détails sur l’impact sur la charge de travail.

Une fois qu’un service de notebooks passe à l’état RUNNING (créé ou repris après avoir été à l’état SUSPENDED), il est assuré de ne pas être interrompu pendant sept jours calendaires (168 heures) en raison de la maintenance du service. Après sept jours de création, le service peut être suspendu à des fins de maintenance obligatoire.