Snowpark Container Services : Lignes directrices et limitations¶
Limitations générales : si vous rencontrez des problèmes avec ces limitations, contactez votre représentant de compte.
Vous pouvez créer jusqu’à 200 services dans votre compte Snowflake.
Chaque service peut avoir jusqu’à 100 points de terminaison (voir spec.endpoints).
Chaque service peut avoir jusqu’à 20 conteneurs (voir spec.containers).
Chaque service peut avoir jusqu’à 50 secrets (voir containers.secrets).
Chaque service peut avoir jusqu’à 20 volumes (voir spec.volumes).
Les limitations suivantes s’appliquent lorsque vous activez l’accès Internet (voir Configuration de la sortie réseau) en utilisant des intégrations d’accès externes (EAIs).
Chaque service peut prendre en charge jusqu’à 10 EAIs (voir CREATE SERVICE et ALTER SERVICE).
Chaque EAI peut avoir jusqu’à 100 noms d’hôtes.
Lorsque vous accédez au point de terminaison public depuis Internet, vous pouvez constater que l’authentification par nom d’utilisateur/mot de passe fonctionne, mais que SSO aboutit à une page blanche ou à l’erreur : « L’intégration du clientOAuth avec l’ID du client donné est introuvable ». Pour obtenir des informations sur la manière de résoudre ce problème, consultez Considérations sur les entrées et SSO.
Exigences relatives à la plateforme d’images : Actuellement, Snowpark Container Services requiert des images de plateforme linux/amd64.
Les conteneurs de services ne sont pas privilégiés : les conteneurs de services ne s’exécutent pas avec des privilèges et ne peuvent donc pas modifier la configuration du matériel sur l’hôte et ne peuvent modifier que des configurations OS limitées. Les conteneurs de services ne peuvent effectuer que les configurations du système d’exploitation qu’un utilisateur normal (c’est-à-dire un utilisateur qui n’a pas besoin d’être rooté) peut effectuer.
Renommage de la base de données et du schéma :
Ne renommez pas les bases de données et les schémas pour lesquels vous avez déjà créé un service. Renommer revient à déplacer un service vers une autre base de données et un autre schéma, ce qui n’est pas pris en charge. Par exemple :
Les informations sur les bases de données et les schémas fournies par Snowflake aux conteneurs de service en cours d’exécution continueront à se référer aux anciens noms.
Les nouveaux journaux que les services intègrent dans la table d’événements continueront à faire référence aux anciens noms de base de données et de schéma.
La fonction de service continuera à référencer le service dans l’ancienne base de données et l’ancien schéma, et lorsque vous appellerez la fonction de service, elle échouera.
Une spécification de service peut faire référence à des objets tels que des zones de préparation de Snowflake et les référentiels d’images. Si vous renommez les noms des bases de données ou des schémas dans lesquels résident ces objets, vous devez mettre à jour manuellement les noms des bases de données et des schémas des objets référencés dans la spécification de service.
Transfert de propriété du schéma parent ou de la base de données :
La propriété de la base de données/du schéma parent peut être transférée à un rôle différent. Mais la propriété des services à l’intérieur du schéma/base de données n’est pas transférée au nouveau rôle, car les services s’exécutent en tant que rôles de propriétaire du service et cela ne change pas. Par conséquent, les services pourraient perdre des autorisations sur des objets à l’intérieur du schéma, tels que les dépôts d’images et les zones de préparation Snowflake dans le même schéma.
Si un transfert de propriété du schéma/de la base de données parent est nécessaire, envisagez de recréer les services.
Suppression et annulation de la suppression d’une base de données et d’un schéma :
Lorsque vous supprimez la base de données ou le schéma parent, les services sont supprimés de manière asynchrone. Cela signifie qu’un service peut continuer à fonctionner pendant un certain temps avant que des processus internes ne le suppriment.
Si vous tentez d’annuler la suppression d’une base de données ou d’un schéma précédemment supprimé, il n’y a aucune garantie que les services seront restaurés.
Transfert de propriété des services : le transfert de propriété ou le transfert de propriété futur pour les services, y compris les services associés aux tâches, n’est pas pris en charge.
Transfert de propriété des fonctions de service :
La propriété d’une fonction de service peut être transférée à différents rôles. Si le nouveau rôle de propriétaire n’a pas de privilège USAGE sur le service, les appels aux fonctions échoueront. Vous devez autoriser le privilège USAGE au nouveau rôle de propriétaire de fonction.
Réplication : en ce qui concerne la réplication dans Snowflake, notez ce qui suit :
Les objets Snowpark Container Services, comme les services, les pools de calcul et les référentiels, ne peuvent pas être répliqués.
Si vous créez un référentiel au sein d’une base de données, la base de données entière ne peut pas être répliquée. Si la base de données contient d’autres ressources, comme des services, ou des pools de calcul, le processus de réplication de base de données aboutira, mais ces objets individuels au sein de la base de données ne seront pas répliqués.
Délai d’expiration des services associés aux tâches : les services associés aux tâches Snowpark Container Services s’exécutent de manière synchrone par défaut. En cas d’expiration d’une instruction, le service associé aux tâches est annulé. Le délai d’expiration par défaut d’une instruction est de deux jours. Les clients peuvent modifier le délai d’expiration en définissant le paramètre STATEMENT_TIMEOUT_IN_SECONDS à l’aide de ALTER SESSION.
ALTER SESSION SET statement_timeout_in_seconds=<time>
Il doit être défini avant l’exécution de la commande EXECUTE JOB SERVICE. Vous pouvez exécuter des services associés aux tâches de manière asynchrone, en spécifiant
ASYNC=true, pour éviter que ceux-ci ne soient interrompus par un délai d’exécution d’instructions.Prise en charge des commandes de mise en zone de préparation de fichiers dans Google Cloud : pour utiliser la commande PUT, GET, LIST, ou REMOVE avec les bibliothèques client Snowflake sur Google Cloud, mettez à jour vos clients avec au moins les versions suivantes.
Client
Version
Pilote Go Snowflake
1.14.1
Connecteur Snowflake pour Python
3.16.0
Pilote .NET
4.6.0
Pilote Node.js
2.1.3
Pilote JDBC
3.25.1
Pilote ODBC
3.10.0