Nous avons un fichier dans S3 qui est chargé dans redshift via la commande J'ai vérifié que les données sont correctes dans S3, mais la commande copie code>. L'importation échoue car un
Varcharchar (20) code> contient un
Ä code> qui est en cours de traduction en
.. code> pendant la commande de copie et est maintenant aussi long pour les 20 caractères. P>
copie code> ne comprend pas les caractères UTF-8 pendant l'importation. Quelqu'un a-t-il trouvé une solution pour cela? P>
5 Réponses :
Veuillez vérifier ci-dessous lien p>
http: // docs. aws.amazon.com/redshift/latest/dg/multi-byte-chacretacter-load-errors.html P>
Vous devez utiliser AccepterSInvCharrs Strong> dans votre commande de copie. Détails ici p>
http://docs.aws.amazon.com/ Redshift / Dernier / DG / R_COPY.HTML # AccepterInvchars P>
Mais les personnages ne sont pas invalides. Je ne veux pas qu'il détruisait les données, je veux qu'il importe correctement.
J'ai une expérience similaire que certains caractères que certains caractères comme Ä code> n'ont pas été copiés correctement lors du chargement de données MySqldump dans notre cluster redshift. C'était parce que l'encodage de MySqldump était
latin1 code> qui est l'ensemble de caractères par défaut de MySQL. Il est préférable de vérifier le codage du personnage des fichiers pour copier en premier. Si l'encodage de vos fichiers n'est pas UTF-8, vous devez coder vos fichiers. P>
La longueur des octets pour votre Les caractères multi-octets (UTF-8) sont pris en charge dans le type de données code> varchar code>, mais la longueur fournie est dans octets em>, Documentation AWS pour la charge de caractères multibytes Erreurs stipule les éléments suivants: p>
Par conséquent, si vous voulez que le caractère AWS documentation VARCHAR ou caractère variable étage ce qui suit: p>
... de sorte qu'un Pour une liste de caractères UTF-8 et leurs longueurs d'octets, c'est une bonne référence:
liste de caractères complète pour UTF-8 p>
Informations détaillées sur le caractère Unicode 'Lettre latin Capital Lettre A avec la diagèse' (U + 00C4) peut être trouvé ici . p> varchar code> doit simplement être plus grande. p>
Détail H2>
varchar code> Les colonnes acceptent des caractères multibyte utf-8, à un maximum de quatre octets. P>
blockQuote>
Ä code> soit autorisé, vous devez autoriser 2 octets pour ce caractère, au lieu de 1 octet. P>
varchar (120) code> Colonne est composé d'un maximum de 120 caractères monocycliques, 60 caractères de deux octets, 40 caractères de trois octets, ou 30 caractères de quatre octets. p>
blockQuote>
Utilisation "AccepterSInvCharrs Escape" dans la commande Copy a résolu le problème pour nous avec une altération des données mineures. P>
Vous devez augmenter la taille de votre colonne VARCHAR. Vérifiez la table stl_load_errors, voir quelle est la longueur de la valeur du champ réelle des lignes en panne et augmentez donc la taille. EDIT: Il suffit de réaliser que c'est un article très ancien, de toute façon si quelqu'un en a besoin. P>