Pourquoi la commande COPY ne charge-t-elle pas mon fichier .csv dans Amazon Redshift ?

Lecture de 2 minute(s)
0

Je souhaite utiliser la commande COPY pour charger un fichier .csv depuis Amazon Simple Storage Service (Amazon S3) dans Amazon Redshift. Le fichier contient des enregistrements. Cependant, la commande ne charge pas le fichier et ne renvoie pas d'erreur.

Résolution

Si le fichier .csv utilise les retours chariot comme marque de fin de ligne, COPY ne charge pas les données dans Amazon Redshift. Les retours de chariot incluent « \\r », « ^M » ou « 0x0D » en hexadécimal.

Amazon Redshift ne reconnaissant pas les retours de chariot comme des marques de fin de ligne, Amazon Redshift analyse le fichier comme s'il s'agissait d'une seule ligne. Lorsque vous définissez le paramètre IGNOREHEADER sur un nombre différent de zéro dans la commande COPY, Amazon Redshift ignore la première ligne. Par conséquent, Amazon Redshift ignore également l'intégralité du fichier. La commande ne renvoie pas d'erreur de chargement car l'opération est techniquement réussie.

Pour résoudre ce problème, remplacez les retours de chariot par CRLF, « \\r\\n » ou « 0x0D0A » en hexadécimal, ou LF, « \\n » ou « 0x0A » en hexadécimal. Chargez le fichier modifié dans le compartiment S3, puis exécutez à nouveau la commande COPY.

Si vous remplacez les retours de chariot et que vous rencontrez toujours des problèmes, prenez les mesures suivantes :

Informations connexes

Sources de données

Exemples de COPY

AWS OFFICIEL
AWS OFFICIELA mis à jour il y a 3 mois