

 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/). 

# Uso de un manifiesto para especificar archivos de datos
<a name="loading-data-files-using-manifest"></a>

Puede usar un manifiesto para asegurarse de que el comando COPY cargue todos los archivos requeridos, y solo los requeridos, en la carga de datos. Puede usar un manifiesto para cargar archivos de diferentes buckets o archivos que no comparten el mismo prefijo. En lugar de proporcionar la ruta de un objeto para el comando COPY, se proporciona el nombre de un archivo de texto en formato JSON que lista explícitamente los archivos por cargar. El URL en el manifiesto debe especificar el nombre del bucket y la ruta completa del objeto para el archivo, no solo un prefijo.

Para obtener más información acerca de los archivos de manifiesto, consulte el ejemplo COPY [Uso de un manifiesto para especificar archivos de datos](r_COPY_command_examples.md#copy-command-examples-manifest).

En el siguiente ejemplo, se muestra el JSON para cargar archivos de diferentes buckets y con nombres de archivo que comiencen con marcas de fecha.

```
{
  "entries": [
    {"url":"s3://amzn-s3-demo-bucket1/2013-10-04-custdata", "mandatory":true},
    {"url":"s3://amzn-s3-demo-bucket1/2013-10-05-custdata", "mandatory":true},
    {"url":"s3://amzn-s3-demo-bucket2/2013-10-04-custdata", "mandatory":true},
    {"url":"s3://amzn-s3-demo-bucket2/2013-10-05-custdata", "mandatory":true}
  ]
}
```

La marca opcional `mandatory` especifica si COPY debe devolver un error en caso de que el archivo no se encuentre. El valor predeterminado de `mandatory` es `false`. Independientemente de cualquier configuración obligatoria, COPY terminará si no se encuentran archivos. 

En el siguiente ejemplo, se ejecuta el comando COPY con el manifiesto del ejemplo anterior, que se denomina `cust.manifest`. 

```
COPY customer
FROM 's3://amzn-s3-demo-bucket/cust.manifest' 
IAM_ROLE 'arn:aws:iam::0123456789012:role/MyRedshiftRole'
MANIFEST;
```

## Uso de un manifiesto creado por UNLOAD
<a name="loading-data-files-using-unload-manifest"></a>

Un manifiesto creado por una operación [UNLOAD](r_UNLOAD.md) que usa el parámetro MANIFEST podría tener claves no requeridas para la operación COPY. Por ejemplo, en el siguiente manifiesto de `UNLOAD`, se incluye una clave `meta` que es necesaria para una tabla externa de Amazon Redshift Spectrum y para cargar archivos de datos con el formato `ORC` o `Parquet`. La clave `meta` contiene una clave `content_length` con un valor que es el tamaño real del archivo en bytes. La operación COPY requiere solo la clave `url` y una clave `mandatory` opcional.

```
{
  "entries": [
    {"url":"s3://amzn-s3-demo-bucket/unload/manifest_0000_part_00", "meta": { "content_length": 5956875 }},
    {"url":"s3://amzn-s3-demo-bucket/unload/unload/manifest_0001_part_00", "meta": { "content_length": 5997091 }}
 ]
}
```

Para obtener más información sobre los archivos de manifiesto, consulte [Uso de un manifiesto para especificar archivos de datos](r_COPY_command_examples.md#copy-command-examples-manifest).