Opciones de mapeo de columnas - Amazon Redshift

Opciones de mapeo de columnas

De manera predeterminada, COPY inserta los valores en las columnas de la tabla de destino en el mismo orden que aparecen los campos en los archivos de datos. Si el orden de columnas predeterminado no funcionará, puede especificar una lista de columnas o utilizar las expresiones JSONPath para asignar los campos de datos de origen a las columnas de destino.

Lista de columnas

Puede especificar una lista de nombres de columnas separada por comas para cargar los campos de datos de origen en columnas de destino específicas. Las columnas pueden estar en cualquier orden en la instrucción COPY, pero, cuando se cargan desde archivos sin formato, como en un bucket de Amazon S3, el orden debe coincidir con el de los datos de origen.

Cuando se realiza la carga desde una tabla de Amazon DynamoDB, el orden no importa. El comando COPY establece una correspondencia entre los nombres de atributos de los elementos recuperados de la tabla de DynamoDB y los nombres de columnas de una tabla de Amazon Redshift. Para obtener más información, consulte Carga de datos desde una tabla de Amazon DynamoDB

El formato para una lista de columnas es el siguiente.

COPY tablename (column1 [,column2, ...])

Si una columna de la tabla de destino se omite de la lista de columnas, COPY carga la expresión DEFAULT de la columna de destino.

Si la columna de destino no tiene un valor predeterminado, COPY intenta cargar NULL.

Si COPY prueba asignar NULL a una columna que está definida como NOT NULL, el comando COPY falla.

Si se incluye una columna IDENTITY en la lista de columnas, también se debe especificar EXPLICIT_IDS. Si se omite una columna IDENTITY, no se puede especificar EXPLICIT_IDS. Si no se especifica una lista de columnas, el comando se comporta como si se especificará una lista de columnas por orden completa, con la omisión de columnas IDENTITY si tampoco se especificó EXPLICIT_IDS.

Si una columna se define con GENERATED BY DEFAULT AS IDENTITY, se puede copiar. Los valores se generan o se actualizan con los que se proporcionan. La opción EXPLICIT_IDS no es obligatoria. COPY no actualiza el límite máximo de la identidad. Para obtener más información, consulte GENERATED BY DEFAULT AS IDENTITY.

Archivo JSONPaths

Cuando se realiza una carga desde archivos de datos en formatos JSON o Avro, COPY asigna de forma automática los elementos de datos en los datos de origen Avro o JSON a las columnas de la tabla de destino. Logra esto al hacer coincidir los nombres de los campos del esquema de Avro con los nombres de las columnas de la lista de columnas o la tabla de destino.

En algunos casos, los nombres de las columnas y los nombres de los campos no coinciden, o bien, es necesario asignarlos a niveles más profundos en la jerarquía de los datos. En estos casos, puede utilizar un archivo JSONPaths para asignar de forma explícita los elementos de datos JSON o Avro a las columnas.

Para obtener más información, consulte Archivo JSONPaths.