Gestion des erreurs dans Snowpipe Streaming haute performance¶
Cette rubrique présente les mécanismes de gestion des erreurs disponibles dans l’édition haute performance de Snowpipe Streaming. Cette approche améliorée fournit des informations détaillées sur les erreurs et améliore le processus global de traitement des erreurs pour une expérience plus robuste et plus informative.
Fonctions clés de traitement des erreurs dans l’architecture haute performance¶
Amélioration du point de terminaison du statut du canal : Cette édition étend le point de terminaison du statut du canal afin de fournir des informations plus complètes sur les erreurs.
Détails granulaires des erreurs : L’édition haute performance fournit des informations plus détaillées sur les erreurs pour aider à identifier l’endroit où elles se sont produites et à trouver les causes racines des problèmes d’ingestion.
Amélioration de l’expérience client : L’édition haute performance simplifie la gestion des erreurs pour les clients, en réduisant la complexité du raisonnement et de la récupération des erreurs.
Nouvelle vue de l’historique du canal : Snowflake introduit également Vue SNOWPIPE_STREAMING_CHANNEL_HISTORY, qui fournit un enregistrement historique de l’activité des canaux afin de surveiller et de localiser les erreurs. Cette fonction vous permet de suivre les tendances en matière d’erreurs et de traiter les problèmes potentiels de manière proactive.
Point de terminaison du statut du canal¶
L’architecture haute performance introduit un nouveau point de terminaison du statut du canal pour fournir des informations plus détaillées. Ce point de terminaison renvoie des informations ponctuelles sur un canal.
Outre les informations sur le statut du canal (statusCode
, persistedOffsetToken
) pour l’architecture classique, l’architecture haute performance comprend les éléments suivants :
channel_status_code
: Représente le statut opérationnel actuel du canal de diffusion. Ce code fournit une indication de haut niveau sur l’état de santé du canal et sa possibilité d’ingérer des données.last_commited_offset_token
: Indique le jeton de décalage du dernier ensemble de lignes qui a été validé dans la table cible par Snowflake. C’est essentiel pour suivre les progrès et garantir la transmission des données.created_on_ms
: L’horodatage, en millisecondes, indiquant le moment où le canal de diffusion a été initialement créé au sein de Snowflake.database_name
: Le nom de la base de données vers laquelle le canal de diffusion est configuré pour ingérer des données.schema_name
: Le nom du schéma au sein de la base de données spécifiée où réside la table cible du canal de diffusion.pipe_name
: Le nom de l’objet Snowpipe qui est configuré pour utiliser ce canal Snowpipe Streaming pour l’ingestion de données dans une table cible spécifique.channel_name
: Un nom créé par l’utilisateur pour l’instance spécifique du canal de Snowpipe Streaming.rows_inserted
: Un décompte du nombre total de lignes de données qui ont été insérées dans la table cible par le biais de ce canal de diffusion depuis sa création.rows_parsed
: Un décompte du nombre total de lignes de données qui ont été traitées et analysées par le service Snowpipe Streaming pour ce canal (mais pas nécessairement insérées, par exemple en raison d’erreurs).rows_error_count
: Un décompte du nombre total de lignes de données qui ont rencontré des erreurs lors du traitement et qui ont donc été rejetées par le service Snowpipe Streaming pour ce canal.last_error_offset_upper_bound
: La limite supérieure de l’intervalle de jetons de décalage du dernier ensemble de lignes qui contenait des erreurs. Cela permet d’identifier l’emplacement approximatif des erreurs les plus récentes dans le flux de données.last_error_message
: Un message lisible par l’homme correspondant au dernier code d’erreur.last_error_timestamp
: L’horodatage indiquant quand l’erreur la plus récente s’est produite sur ce canal de diffusion.snowflake_avg_processing_latency_ms
: La latence moyenne, en millisecondes, observée par le service Snowflake dans le traitement des ensembles de lignes reçus par ce canal. Cette métrique donne un aperçu des performances du pipeline d’ingestion au sein de Snowflake.
Flux de traitement des erreurs dans l’architecture haute performance¶
Envoi de données par le client : L’application client utilise le SDK de Snowpipe Streaming pour envoyer des données à Snowflake via l’API
appendRow(s)
.Traitement par le serveur : Le service Snowflake traite les données. Cela implique ce qui suit :
Mise en mémoire tampon des données.
Analyse et validation des données.
Enregistrement des données dans la table.
Détection des erreurs : Des erreurs peuvent se produire au cours de n’importe quelle zone de préparation de traitement côté serveur.
Enregistrement des erreurs : Snowflake enregistre des informations détaillées sur la dernière erreur survenue, notamment :
La limite supérieure de l’intervalle de jetons de décalage du dernier ensemble de lignes contenant des erreurs. Cela permet d’identifier l’emplacement approximatif des erreurs les plus récentes dans le flux de données.
Un message d’erreur.
Un horodatage.
Rapport d’erreur :
Le point de terminaison amélioré du statut du canal permet d’accéder aux informations d’erreur enregistrées.
Les clients peuvent interroger ce point de terminaison pour récupérer les détails de la dernière erreur survenue.
Snowflake introduit également Vue SNOWPIPE_STREAMING_CHANNEL_HISTORY, qui fournit un enregistrement historique de l’activité du canal, y compris les erreurs et leurs décalages.
Action du client : L’application client utilise les informations relatives à l’erreur pour :
Identifier la cause de l’erreur.
Mettre en œuvre une logique de traitement des erreurs appropriée, telle que :
Réessayer l’opération qui a échoué.
Consigner l’erreur.
Alerter un administrateur.
Déplacer les données erronées vers une file d’attente de lettres mortes.
Réouvrir les canaux.