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