

 Amazon Redshift dejará de admitir la creación de nuevas UDF de Python a partir del parche 198. Las UDF de Python existentes seguirán funcionando hasta el 30 de junio de 2026. Para obtener más información, consulte la [publicación del blog](https://aws.amazon.com/blogs/big-data/amazon-redshift-python-user-defined-functions-will-reach-end-of-support-after-june-30-2026/). 

# COPY
<a name="r_COPY"></a>


|  | 
| --- |
|  El cifrado del cliente para los comandos COPY y UNLOAD dejará de estar abierto a nuevos clientes a partir del 30 de abril de 2025. Si ha utilizado el cifrado del cliente con los comandos COPY y UNLOAD en los 12 meses anteriores al 30 de abril de 2025, puede seguir utilizando el cifrado del cliente con los comandos COPY o UNLOAD hasta el 30 de abril de 2026. Después del 30 de abril de 2026, no podrá utilizar el cifrado del cliente para COPY y UNLOAD. Le recomendamos que pase a utilizar el cifrado del servidor para COPY y UNLOAD lo antes posible. Si ya está utilizando el cifrado del servidor para COPY y UNLOAD, no hay ningún cambio y puede seguir utilizándolo sin alterar las consultas. Para obtener más información sobre el cifrado para COPY y UNLOAD, consulte el parámetro ENCRYPTED a continuación.  | 

Carga datos en una tabla desde archivos de datos o desde una tabla de Amazon DynamoDB. Los archivos pueden encontrarse en un bucket de Amazon Simple Storage Service (Amazon S3), un clúster de Amazon EMR o un alojamiento remoto al que se puede acceder mediante una conexión Secure Shell (SSH).

**nota**  
Las tablas externas de Amazon Redshift Spectrum solo se pueden leer. No puede aplicar COPY a una tabla externa.

El comando COPY anexa los datos de entrada como filas adicionales a la tabla.

El tamaño máximo de una fila de entrada única de cualquier origen es de 4 MB.

**Topics**
+ [Permisos necesarios](#r_COPY-permissions)
+ [Sintaxis de COPY](#r_COPY-syntax)
+ [Parámetros necesarios](#r_COPY-syntax-required-parameters)
+ [Parámetros opcionales](#r_COPY-syntax-overview-optional-parameters)
+ [Notas de uso y recursos adicionales para el comando COPY](#r_COPY-using-the-copy-command)
+ [Ejemplos del comando COPY](#r_COPY-using-the-copy-command-examples)
+ [COPY JOB](r_COPY-JOB.md)
+ [COPY con TEMPLATE](r_COPY-WITH-TEMPLATE.md)
+ [Referencia de parámetros de COPY](r_COPY-parameters.md)
+ [Notas de uso](r_COPY_usage_notes.md)
+ [Ejemplos de COPY](r_COPY_command_examples.md)

## Permisos necesarios
<a name="r_COPY-permissions"></a>

Para utilizar el comando COPY, debe tener el privilegio [INSERT](r_GRANT.md#grant-insert) para la tabla de Amazon Redshift.

## Sintaxis de COPY
<a name="r_COPY-syntax"></a>

```
COPY table-name 
[ column-list ]
FROM data_source
authorization
[ [ FORMAT ] [ AS ] data_format ] 
[ parameter [ argument ] [, ... ] ]
```

Puede realizar una operación COPY con un mínimo de tres parámetros: un nombre de tabla, un origen de datos y una autorización para obtener acceso a los datos. 

Amazon Redshift extiende la funcionalidad del comando COPY para permitir la carga de datos en varios formatos de datos de varios orígenes de datos, el control del acceso a los datos de carga, la administración de las transformaciones de datos y la administración de la operación de carga. 

Las siguientes secciones presentan los parámetros requeridos del comando COPY, mediante la agrupación de los parámetros opcionales por función. También describen cada parámetro y explican el funcionamiento conjunto de las distintas opciones. Puede ir directamente a la descripción de un parámetro mediante la lista alfabética de parámetros. 

## Parámetros necesarios
<a name="r_COPY-syntax-required-parameters"></a>

El comando COPY requiere tres elementos: 
+ [Table Name](#r_COPY-syntax-overview-table-name)
+ [Data Source](#r_COPY-syntax-overview-data-source)
+ [Authorization](#r_COPY-syntax-overview-credentials)

El comando COPY más sencillo utiliza el siguiente formato. 

```
COPY table-name 
FROM data-source
authorization;
```

En el siguiente ejemplo, se crea una tabla denominada CATDEMO y luego se carga la tabla con datos de ejemplo de un archivo de datos de Amazon S3 denominado `category_pipe.txt`. 

```
create table catdemo(catid smallint, catgroup varchar(10), catname varchar(10), catdesc varchar(50));
```

En el siguiente ejemplo, el origen de datos del comando COPY es un archivo de datos llamado `category_pipe.txt` que se encuentra en la carpeta `tickit` de un bucket de Amazon S3 denominado `redshift-downloads`. El comando COPY tiene autorización para acceder al bucket de Amazon S3 a través de un rol de AWS Identity and Access Management (IAM). Si el clúster tiene adjunto un rol de IAM ya existente con permiso para acceder a Amazon S3, puede sustituir el nombre de recurso de Amazon (ARN) del rol en el siguiente comando COPY y ejecutarlo.

```
copy catdemo
from 's3://redshift-downloads/tickit/category_pipe.txt'
iam_role 'arn:aws:iam::{{<aws-account-id>}}:role/{{<role-name>}}'
region 'us-east-1';
```

Para obtener instrucciones completas sobre cómo se utilizan los comandos COPY para cargar datos de muestra, incluidas las instrucciones para cargar datos de otras regiones de AWS, consulte [Cargar datos de muestra desde Amazon S3](https://docs.aws.amazon.com/redshift/latest/gsg/rs-gsg-create-sample-db.html) en la Guía de introducción a Amazon Redshift.

*table-name (nombre-tabla*  <a name="r_COPY-syntax-overview-table-name"></a>
El nombre de la tabla de destino para el comando COPY. La tabla ya debe existir en la base de datos. La tabla puede ser temporal o persistente. El comando COPY adjunta los nuevos datos de entrada a cualquier fila existente en la tabla.

FROM *data-source (origen-datos)*  <a name="r_COPY-syntax-overview-data-source"></a>
La ubicación de los datos de origen que se van a cargar en la tabla de destino. Puede especificarse un archivo de manifiesto con algunos orígenes de datos.   
El repositorio de datos más utilizado es un bucket de Amazon S3. También puede cargar datos de archivos de datos ubicados en un clúster de Amazon EMR, una instancia de Amazon EC2 o un alojamiento remoto al que el clúster puede acceder a través de una conexión SSH, o puede cargarlos directamente desde una tabla de DynamoDB.   
+ [COPY de Amazon S3](copy-parameters-data-source-s3.md)
+ [COPY de Amazon EMR](copy-parameters-data-source-emr.md) 
+ [COPY de hosts remotos (SSH)](copy-parameters-data-source-ssh.md)
+ [COPY de Amazon DynamoDB](copy-parameters-data-source-dynamodb.md)

Autorización  <a name="r_COPY-syntax-overview-credentials"></a>
Se trata de una cláusula que indica el método que el clúster utiliza para la autenticación y la autorización con objeto de acceder a otros recursos de AWS. El comando COPY necesita autorización para acceder a los datos de otro recurso de AWS, incluidos los recursos de Amazon S3, Amazon EMR, Amazon DynamoDB y Amazon EC2. Puede proporcionar esa autorización haciendo referencia a un rol de IAM que esté asociado al clúster o proporcionando el ID de clave de acceso y la clave de acceso secreta de un usuario de IAM.   
+ [Parámetros de autorización](copy-parameters-authorization.md) 
+ [Control de acceso con base en roles](copy-usage_notes-access-permissions.md#copy-usage_notes-access-role-based) 
+ [Control de acceso basado en claves](copy-usage_notes-access-permissions.md#copy-usage_notes-access-key-based) 

## Parámetros opcionales
<a name="r_COPY-syntax-overview-optional-parameters"></a>

De forma opcional, puede especificar el modo en que COPY asigna los datos de campo a las columnas de la tabla de destino, definir los atributos de datos de origen para permitir al comando COPY leer y analizar los datos de origen de forma correcta y administrar qué operaciones realiza el comando COPY durante el proceso de carga. 
+ [Opciones de mapeo de columnas](copy-parameters-column-mapping.md)
+ [Parámetros de formato de datos](#r_COPY-syntax-overview-data-format)
+ [Parámetros de conversión de datos](#r_COPY-syntax-overview-data-conversion)
+ [Operaciones de carga de datos](#r_COPY-syntax-overview-data-load)

### Mapeo de columnas
<a name="r_COPY-syntax-overview-column-mapping"></a>

De manera predeterminada, COPY inserta los valores de campo 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. 
+ [Column List](copy-parameters-column-mapping.md#copy-column-list)
+ [JSONPaths File](copy-parameters-column-mapping.md#copy-column-mapping-jsonpaths)

### Parámetros de formato de datos
<a name="r_COPY-syntax-overview-data-format"></a>

Puede cargar datos de archivos de texto en formato JSON, de valores separados por coma (CSV), de ancho fijo o delimitados por caracteres, o de archivos de Avro.

De manera predeterminada, el comando COPY espera que los datos de origen estén en archivos de texto UTF-8 delimitados por caracteres. El delimitador predeterminado es el carácter de barra vertical ( \| ). Si los datos de origen están en otro formato, utilice los siguientes parámetros para especificar el formato de datos.
+ [FORMAT](copy-parameters-data-format.md#copy-format)
+ [CSV](copy-parameters-data-format.md#copy-csv)
+ [DELIMITER](copy-parameters-data-format.md#copy-delimiter) 
+ [FIXEDWIDTH](copy-parameters-data-format.md#copy-fixedwidth) 
+ [SHAPEFILE](copy-parameters-data-format.md#copy-shapefile) 
+ [AVRO](copy-parameters-data-format.md#copy-avro) 
+ [JSON format for COPY](copy-parameters-data-format.md#copy-json) 
+ [ENCRYPTED](copy-parameters-data-source-s3.md#copy-encrypted) 
+ [BZIP2](copy-parameters-file-compression.md#copy-bzip2) 
+ [GZIP](copy-parameters-file-compression.md#copy-gzip) 
+ [LZOP](copy-parameters-file-compression.md#copy-lzop) 
+ [PARQUET](copy-parameters-data-format.md#copy-parquet) 
+ [ORC](copy-parameters-data-format.md#copy-orc) 
+ [ZSTD](copy-parameters-file-compression.md#copy-zstd) 

### Parámetros de conversión de datos
<a name="r_COPY-syntax-overview-data-conversion"></a>

A medida que carga la tabla, COPY intenta convertir de forma implícita las cadenas de los datos de origen al tipo de datos de la columna de destino. Si necesita especificar una conversión que sea diferente a la del comportamiento predeterminado, o si la conversión predeterminada da lugar a errores, puede administrar las conversiones de datos especificando los siguientes parámetros.
+ [ACCEPTANYDATE](copy-parameters-data-conversion.md#copy-acceptanydate) 
+ [ACCEPTINVCHARS](copy-parameters-data-conversion.md#copy-acceptinvchars) 
+ [BLANKSASNULL](copy-parameters-data-conversion.md#copy-blanksasnull) 
+ [DATEFORMAT](copy-parameters-data-conversion.md#copy-dateformat) 
+ [EMPTYASNULL](copy-parameters-data-conversion.md#copy-emptyasnull) 
+ [ENCODING](copy-parameters-data-conversion.md#copy-encoding) 
+ [ESCAPE](copy-parameters-data-conversion.md#copy-escape) 
+ [EXPLICIT_IDS](copy-parameters-data-conversion.md#copy-explicit-ids) 
+ [FILLRECORD](copy-parameters-data-conversion.md#copy-fillrecord) 
+ [IGNOREBLANKLINES](copy-parameters-data-conversion.md#copy-ignoreblanklines) 
+ [IGNOREHEADER](copy-parameters-data-conversion.md#copy-ignoreheader) 
+ [NULL AS](copy-parameters-data-conversion.md#copy-null-as) 
+ [REMOVEQUOTES](copy-parameters-data-conversion.md#copy-removequotes) 
+ [ROUNDEC](copy-parameters-data-conversion.md#copy-roundec) 
+ [TIMEFORMAT](copy-parameters-data-conversion.md#copy-timeformat) 
+ [TRIMBLANKS](copy-parameters-data-conversion.md#copy-trimblanks) 
+ [TRUNCATECOLUMNS](copy-parameters-data-conversion.md#copy-truncatecolumns) 

### Operaciones de carga de datos
<a name="r_COPY-syntax-overview-data-load"></a>

Administre el comportamiento predeterminado de la operación de carga para solucionar problemas o reducir los tiempos de carga especificando los siguientes parámetros. 
+ [COMPROWS](copy-parameters-data-load.md#copy-comprows) 
+ [COMPUPDATE](copy-parameters-data-load.md#copy-compupdate) 
+ [IGNOREALLERRORS](copy-parameters-data-load.md#copy-ignoreallerrors) 
+ [MAXERROR](copy-parameters-data-load.md#copy-maxerror) 
+ [NOLOAD](copy-parameters-data-load.md#copy-noload) 
+ [STATUPDATE](copy-parameters-data-load.md#copy-statupdate) 

## Notas de uso y recursos adicionales para el comando COPY
<a name="r_COPY-using-the-copy-command"></a>

Para obtener más información acerca de cómo utilizar el comando COPY, consulte los siguientes temas: 
+ [Notas de uso](r_COPY_usage_notes.md)
+ [Tutorial: Carga de datos desde Amazon S3](tutorial-loading-data.md)
+ [Prácticas recomendadas de Amazon Redshift para la carga de datos](c_loading-data-best-practices.md)
+ [Carga de tablas con el comando COPY](t_Loading_tables_with_the_COPY_command.md)
  + [Carga de datos desde Amazon S3](t_Loading-data-from-S3.md)
  + [Carga de datos desde Amazon EMR](loading-data-from-emr.md)
  + [Carga de datos desde hosts remotos](loading-data-from-remote-hosts.md) 
  + [Carga de datos desde una tabla de Amazon DynamoDB](t_Loading-data-from-dynamodb.md)
+ [Solución de problemas en cargas de datos](t_Troubleshooting_load_errors.md)

## Ejemplos del comando COPY
<a name="r_COPY-using-the-copy-command-examples"></a>

Para ver más ejemplos que muestran cómo usar COPY desde varios orígenes, en formatos dispares y con diferentes opciones de COPY, consulte [Ejemplos de COPY](r_COPY_command_examples.md).