Chargement de données de largeur fixe à partir d’Amazon S3 - Amazon Redshift

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Chargement de données de largeur fixe à partir d’Amazon S3

Les fichiers de données de largeur fixe ont des longueurs uniformes pour chaque colonne de données. Chaque champ d’un fichier de données de largeur fixe possède exactement les mêmes longueur et position. Pour les données de type character (CHAR et VARCHAR) d’un fichier de données de largeur fixe, vous devez inclure les espaces de début ou de fin comme espaces réservés afin que la largeur demeure uniforme. Pour les entiers, vous devez utiliser des zéros comme espaces réservés. Un fichier de données de largeur fixe n’a pas de délimiteur pour séparer les colonnes.

Pour charger un fichier de données de largeur fixe dans une table existante, utilisez le paramètre FIXEDWIDTH de la commande COPY. Vos spécifications de table doivent correspondre à la valeur de fixedwidth_spec pour que les données se chargent correctement.

Pour charger les données de largeur fixe depuis un fichier vers une table, émettez la commande suivante :

copy table_name from 's3://mybucket/prefix' iam_role 'arn:aws:iam::0123456789012:role/MyRedshiftRole' fixedwidth 'fixedwidth_spec';

Le paramètre fixedwidth_spec est une chaîne qui contient un identificateur pour chaque colonne et la largeur de chaque colonne, avec le caractère deux-points comme séparateur. Les paires column:width sont délimitées par des virgules. L’identificateur peut être l’un de vos choix : chiffres, lettres ou une combinaison des deux. L’identificateur n’ayant aucune relation avec la table elle-même, les spécifications doivent contenir les colonnes dans le même ordre que la table.

Les deux exemples suivants présentent les mêmes spécifications, avec la première utilisant des identificateurs de type numérique (numeric) et la seconde des identificateurs de type chaîne (string) :

'0:3,1:25,2:12,3:2,4:6'
'venueid:3,venuename:25,venuecity:12,venuestate:2,venueseats:6'

L’exemple suivant montre un exemple de données de largeur fixe qui pourraient être chargées dans la table VENUE selon les spécifications précédentes :

1 Toyota Park Bridgeview IL0 2 Columbus Crew Stadium Columbus OH0 3 RFK Stadium Washington DC0 4 CommunityAmerica Ballpark Kansas City KS0 5 Gillette Stadium Foxborough MA68756

La commande COPY suivante charge cet ensemble de données dans la table VENUE :

copy venue from 's3://mybucket/data/venue_fw.txt' iam_role 'arn:aws:iam::0123456789012:role/MyRedshiftRole' fixedwidth 'venueid:3,venuename:25,venuecity:12,venuestate:2,venueseats:6';