Dépannage des chargements de données en lot

Ce chapitre décrit une approche méthodique pour dépanner des problèmes liés aux chargements de données en lot.

Dans ce chapitre :

Échecs de chargement de données

Étape 1. Affichage de l’historique COPY de la table

Interrogez l’historique des activités de chargement pour une table. Pour plus d’informations, voir COPY_HISTORY. La colonne STATUS indique si un ensemble particulier de fichiers a été chargé, partiellement chargé ou non. La colonne FIRST_ERROR_MESSAGE fournit une raison lorsqu’une tentative est partiellement chargée ou échouée.

Notez que si un ensemble de fichiers pose plusieurs problèmes, la colonne FIRST_ERROR_MESSAGE indique seulement la première erreur rencontrée. Pour afficher toutes les erreurs dans les fichiers, voir Étape 2. Validation du chargement de données pour les instructions.

Étape 2. Valider la charge de données

L’option de copie VALIDATION_MODE commande une instruction COPY pour valider les données à charger et retourner les résultats en fonction de l’option de validation spécifiée. Aucune donnée n’est chargée lorsque cette option de copie est spécifiée. Pour plus d’informations sur l’option de copie, voir COPY INTO <table>.

Exécutez une instruction COPY avec l’option de copie VALIDATION_MODE définie sur RETURN_ALL_ERRORS. Dans l’instruction, faites référence à l’ensemble des fichiers que vous avez tenté de charger.

L’exemple suivant valide un ensemble de fichiers contenant des erreurs. Pour faciliter l’analyse des erreurs, une instruction COPY INTO <emplacement> décharge ensuite les enregistrements problématiques dans un fichier texte afin qu’ils puissent être analysés et corrigés dans les fichiers de données originaux. L’instruction interroge la fonction de table RESULT_SCAN pour récupérer les enregistrements. Notez que les instructions de cette section doivent être exécutées successivement afin de récupérer les enregistrements applicables à l’aide de la fonction LAST_QUERY_ID.

COPY INTO mytable
  FROM @mystage/myfile.csv.gz
  VALIDATION_MODE=RETURN_ALL_ERRORS;

SET qid=last_query_id();

COPY INTO @mystage/errors/load_errors.txt FROM (SELECT rejected_record FROM TABLE(result_scan($qid)));

Autres problèmes

Erreur : l’intégration {0} associée à l’étape {1} est introuvable.

Le chargement de données à partir d’une zone de préparation externe peut générer une erreur similaire à celle-ci :

003139=SQL compilation error:\nIntegration ''{0}'' associated with the stage ''{1}'' cannot be found.

Cette erreur peut se produire lorsque l’association entre la zone de préparation externe et l’intégration de stockage liée à la zone de préparation a été rompue. Cela se produit lorsque l’objet d’intégration de stockage a été recréé (avec CREATE OR REPLACE STORAGE INTEGRATION). Une zone de préparation est liée à une intégration de stockage à l’aide d’un ID caché plutôt que le nom de l’intégration de stockage. En coulisse, la syntaxe CREATE OR REPLACE détruit l’objet et le recrée avec un ID caché différent.

Si vous devez recréer une intégration de stockage après qu’elle a été liée à une ou plusieurs zones de préparation, vous devez rétablir l’association entre chaque zone de préparation et l’intégration de stockage en exécutant ALTER STAGE nom_zone_préparation SET STORAGE_INTEGRATION = nom_intégration_stockage, où :

  • nom_zone_préparation est le nom de la zone de préparation.

  • nom_intégration_stockage est le nom de l’intégration de stockage.