Carga de datos desde archivos comprimidos y sin comprimir - Amazon Redshift

Carga de datos desde archivos comprimidos y sin comprimir

Cuando cargue datos comprimidos, le recomendamos que divida los datos de cada tabla en distintos archivos. Cuando carga datos delimitados y sin comprimir, el comando COPY utiliza rangos de escaneo y procesamiento masivo en paralelo (MPP) para cargar datos de archivos de gran tamaño en un bucket de Amazon S3.

Carga de datos desde varios archivos comprimidos

Cuando tenga datos comprimidos, le recomendamos que divida los datos de cada tabla en varios archivos. El comando COPY puede cargar datos desde distintos archivos en paralelo. Puede cargar varios archivos especificando un prefijo común o el prefijo de clave del conjunto, o enumerando explícitamente los archivos en un archivo de manifiesto.

Divida los datos en archivos de manera tal que la cantidad de archivos sea múltiplo de la cantidad de sectores en su clúster. De esa manera, Amazon Redshift puede dividir los datos de forma uniforme entre los sectores. El número de sectores por nodo depende del tamaño de nodo del clúster. Por ejemplo, cada nodo de computación DS2.XL tiene dos sectores y cada nodo de computación DS2.8XL tiene 32 sectores. Para obtener más información acerca de la cantidad de sectores que tiene cada tamaño de nodo, consulte Acerca de clústeres y nodos en la Guía de administración de Amazon Redshift.

Todos los nodos participan en la ejecución de consultas en paralelo y trabajan en datos que se distribuyen de la manera más uniforme posible entre los sectores. Si tiene un clúster con dos nodos DS2.XL, podría dividir los datos en cuatro archivos o en un múltiplo de cuatro. Amazon Redshift no tiene en cuenta el tamaño de los archivos a la hora de dividir la carga de trabajo. Por lo tanto, debe asegurarse de que los archivos tengan aproximadamente el mismo tamaño, de 1 MB a 1 GB después de la compresión.

Para utilizar prefijos de objeto para identificar los archivos de carga, nombre cada archivo con un prefijo común. Por ejemplo, si desea dividir el archivo venue.txt podría hacerlo en cuatro archivos, de la siguiente manera:

venue.txt.1 venue.txt.2 venue.txt.3 venue.txt.4

Si coloca en su bucket una carpeta con archivos distintos, y nombra a esa carpeta como el prefijo, COPY cargará todos los archivos que se encuentren en ella. Si detalla de manera explícita los archivos que deben cargarse mediante un archivo de manifiesto, los archivos pueden encontrarse en diferentes buckets o carpetas.

Para obtener más información sobre los archivos de manifiesto, consulte Example: COPY from Amazon S3 using a manifest.

Carga de datos desde archivos delimitados y sin comprimir

Cuando se cargan datos delimitados y sin comprimir, el comando COPY utiliza la arquitectura de procesamiento masivo en paralelo (MPP), de Amazon Redshift. Amazon Redshift utiliza automáticamente sectores que funcionan en paralelo para cargar rangos de datos de un archivo de gran tamaño en un bucket de Amazon S3. El archivo debe estar delimitado para que se produzca una carga paralela. Por ejemplo, delimitado por canalización. La carga automática de datos en paralelo con el comando COPY también está disponible para los archivos CSV. Igualmente, puede aprovechar los beneficios del procesamiento en paralelo mediante la configuración de claves de distribución en las tablas. Para obtener más información acerca de las claves de distribución, consulte Uso de estilos de distribución de datos.

No se admite la carga automática de datos en paralelo cuando la consulta COPY incluye cualquiera de las siguientes palabras clave: ESCAPE, REMOVEQUOTES y FIXEDWIDTH.

Los datos de uno o más archivos se cargan en la tabla destino, una línea por fila. Los campos en el archivo de datos se corresponden con las columnas de la tabla, de izquierda a derecha. Los campos en los archivos de datos pueden ser de ancho fijo o con caracteres delimitados; el delimitador predeterminado es la barra vertical (|). De manera predeterminada, se cargan todas las columnas de la tabla, pero de manera alternativa se puede definir una lista de columnas separadas por comas. Si una columna de la tabla no está incluida en la lista de columnas especificada en el comando COPY, esta se cargará con un valor predeterminado. Para obtener más información, consulte Carga de valores de columna predeterminados.

Siga este proceso general para cargar datos de Amazon S3, cuando los datos estén delimitados y sin comprimir:

  1. Cargue sus archivos en Amazon S3.

  2. Ejecute el comando COPY para cargar la tabla.

  3. Compruebe que los datos se hayan cargado correctamente.

Para ver ejemplos de comandos COPY, consulte Ejemplos de COPY. Para obtener información acerca de los datos cargados en Amazon Redshift, consulte las tablas de sistema STL_LOAD_COMMITS y STL_LOAD_ERRORS.

Para obtener más información acerca de los nodos y de los sectores que tiene cada nodo, consulte Acerca de clústeres y nodos en la Guía de administración de Amazon Redshift.