Carga de datos de ancho fijo desde Amazon S3 - Amazon Redshift

Carga de datos de ancho fijo desde Amazon S3

Los archivos de datos de ancho fijo tienen longitudes uniformes para cada columna de datos. Cada campo de un archivo con datos de ancho fijo tiene exactamente la misma longitud y posición. En el caso de datos de caracteres (CHAR y VARCHAR) en un archivo de datos de ancho fijo, debe incluir espacios a la izquierda o a la derecha como marcadores de posición, con objeto de mantener la uniformidad del ancho. En el caso de números enteros, se deben usar ceros a la izquierda como marcadores de posición. Un archivo de datos de ancho fijo no tiene delimitador para separar columnas.

Para cargar un archivo de datos de ancho fijo en una tabla existente, USE el parámetro FIXEDWIDTH del comando COPY. Las especificaciones de la tabla deben coincidir con el valor de fixedwidth_spec con objeto de que los datos se carguen de manera correcta.

Para cargar datos de ancho fijo en una tabla desde un archivo, emita el siguiente comando:

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

El parámetro fixedwidth_spec es una cadena que contiene un identificador para cada columna y el ancho de cada columna, separados por dos puntos. Los pares column:width están delimitados por comas. El identificador puede ser lo que usted elija: números, letras o una combinación de los dos. El identificador no se relaciona con la tabla en sí, por lo que la especificación debe tener las columnas en el mismo orden que la tabla.

En los siguientes dos ejemplos, se observa la misma especificación; la primera usa identificadores numéricos y la segunda usa identificadores de cadena:

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

En el siguiente ejemplo, se muestran datos de muestra de ancho fijo que podrían cargarse en la tabla VENUE con las especificaciones anteriores:

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

El siguiente comando COPY carga este conjunto de datos en la tabla 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';