Snowpark Container Services : Modifications de la logique de relance des lots ayant échoué et nouvelles colonnes dans la sortie de la commande DESC FUNCTION¶
Attention
Ce changement de comportement fait partie du bundle 2025_02.
Pour connaître le statut actuel du bundle, reportez-vous à Historique du bundle.
Modifications de la logique de relance en cas d’échec d’une requête de lot¶
Lorsque vous exécutez une requête qui inclut une fonction de service, Snowflake envoie une série de requêtes HTTP, chacune contenant un lot de lignes au service. Si le service renvoie des erreurs (erreur HTTP 404, 429, 500, 502, 503 ou 504), Snowflake relance la requête. Lorsque Snowflake fait une nouvelle tentative, il renvoie le même lot après un délai déterminé par un algorithme de backoff exponentiel.
- Avant la modification:
Si le temps de sommeil total entre les relances atteint une heure, Snowflake marque l’échec de l’exécution du lot et l’échec de l’exécution de la fonction de service.
- Après la modification:
Par défaut, Snowflake fait trois nouvelles tentatives avec le lot qui a échoué. Vous pouvez éventuellement spécifier le nombre de fois que vous souhaitez que Snowflake relance le lot en exécutant la commande CREATE FUNCTION ou ALTER FUNCTION avec le paramètre MAX_BATCH_RETRIES. Par exemple :
Pour la commande CREATE FUNCTION, spécifiez le paramètre MAX_BATCH_RETRIES, comme indiqué ci-dessous :
CREATE [ OR REPLACE ] FUNCTION <name> ( [ <arg_name> <arg_data_type> ] [ , ... ] ) RETURNS <result_data_type> … [ MAX_BATCH_RETRIES = <integer> ] AS '<http_path_to_request_handler>' …
Pour la commande ALTER FUNCTION, utilisez
SET MAX_BATCH_RETRIES = integer
pour définir le nombre de tentatives :ALTER FUNCTION [ IF EXISTS ] <name> ( [ <arg_data_type> , ... ] ) SET MAX_BATCH_RETRIES = <integer>
Commande DESCRIBE FUNCTION (Snowpark Container Services) : Nouvelles colonnes dans la sortie¶
Lorsque ce bundle de changements de comportement est activé, la sortie de la commande DESCRIBE FUNCTION (Snowpark Container Services) comprend les nouvelles colonnes suivantes :
Nom de la colonne |
Description |
---|---|
MAX_BATCH_RETRIES |
Nombre maximal de tentatives pour chaque lot de lignes traité par la fonction de service. |
ON_BATCH_FAILURE |
Le comportement de la fonction de service lorsqu’un lot de lignes atteint la limite maximale de tentatives. |
BATCH_TIMEOUT_SECS |
Durée maximale pendant laquelle Snowflake attend le traitement d’un seul lot de lignes (y compris les tentatives et l’interrogation asynchrone des requêtes) avant de mettre fin à la requête par lot. |
Réf : 1938