Catégories :

Schéma d’information, Fonctions de table

VALIDATE_PIPE_LOAD

Cette fonction de table peut être utilisée pour valider les fichiers de données traités par Snowpipe dans un intervalle de temps spécifié. La fonction renvoie des détails sur toutes les erreurs rencontrées lors d’une tentative de chargement de données dans les tables Snowflake.

Note

Cette fonction renvoie l’activité du canal au cours des 14 derniers jours.

Syntaxe

VALIDATE_PIPE_LOAD(
      PIPE_NAME => '<string>'
       , START_TIME => <constant_expr>
      [, END_TIME => <constant_expr> ] )

Arguments

PIPE_NAME => chaîne

Chaîne de caractères spécifiant un canal. La fonction renvoie les résultats pour le canal spécifié uniquement.

START_TIME => expr_constante

Horodatage (au format TIMESTAMP_LTZ), au cours des 14 derniers jours, marquant le début de la période de récupération des événements d’erreur.

Facultatif :

END_TIME => expr_constante

Horodatage (au format TIMESTAMP_LTZ), au cours des 14 derniers jours, marquant la fin de la période de récupération des événements d’erreur.

Notes sur l’utilisation

  • Renvoie des résultats uniquement pour le propriétaire du canal (c’est-à-dire le rôle dôté du privilège OWNERSHIP sur le canal) ou un rôle avec les autorisations minimales suivantes :

    Privilège

    Objet

    Remarques

    MONITOR

    Canal

    Alternativement, le privilège global MONITOR EXECUTION est pris en charge.

    USAGE

    Définition de la zone de préparation d’un canal

    Zones de préparation externes uniquement

    READ

    Définition de la zone de préparation d’un canal

    Zones de préparation internes uniquement

    SELECT

    Table dans la définition du canal

    Les opérations SQL sur les objets de schéma nécessitent également le privilège USAGE sur la base de données et le schéma qui contiennent l’objet.

  • Lors de l’appel d’une fonction de la table Information Schema, la session doit avoir un schéma INFORMATION_SCHEMA en cours d’utilisation ou le nom de la fonction doit être complètement qualifié. Pour plus de détails, voir Schéma d’information.

  • Si Snowpipe n’a rencontré aucune erreur lors du traitement de fichiers de données dans la plage de temps spécifiée, la fonction ne renvoie aucun résultat.

  • Si l’instruction COPY dans la description du canal inclut une requête pour transformer davantage les données pendant le chargement (c’est-à-dire une transformation COPY), la fonction renvoie actuellement une erreur utilisateur.

  • Si la plage de dates spécifiée tombe en dehors des 15 derniers jours, une erreur est renvoyée.

Sortie

La fonction renvoie les colonnes suivantes :

Nom de la colonne

Type de données

Description

ERROR

TEXT

Première erreur dans le fichier source.

FILE

TEXT

Nom du fichier source où l’erreur est survenue.

LINE

NUMBER

Numéro de la ligne dans le fichier source où l’erreur est survenue.

CHARACTER

NUMBER

Position du caractère où l’erreur est survenue.

BYTE_OFFSET

NUMBER

Décalage d’octet vers le caractère où l’erreur est survenue.

CATEGORY

TEXT

Catégorie de l’opération lorsque l’erreur est survenue.

CODE

NUMBER

ID pour le message d’erreur affiché dans la colonne ERROR.

SQL_STATE

NUMBER

Code de statut SQL.

COLUMN_NAME

TEXT

Nom et ordre de la colonne contenant l’erreur.

ROW_NUMBER

NUMBER

Numéro de la ligne dans le fichier source où l’erreur est survenue.

ROW_START_LINE

NUMBER

Numéro de la première ligne de la ligne où l’erreur est survenue.

REJECTED_RECORD

TEXT

Enregistrement qui contenait l’erreur.

Exemples

Validez les charges pour le canal mypipe au cours de l’heure précédente :

select * from table(validate_pipe_load(
  pipe_name=>'MY_DB.PUBLIC.MYPIPE',
  start_time=>dateadd(hour, -1, current_timestamp())));