Carga Masiva de Datos sin Delimitador en RedSheet

Clase 24 de 33Curso de AWS Redshift para Manejo de Big Data

Resumen

¿Cómo cargar archivos sin delimitador en Redshift?

Cargar archivos de datos suele ser una tarea crítica en ambientes de bases de datos, y Amazon Redshift no es la excepción. Muchos datos se encuentran en archivos donde las columnas están delimitadas por espacios fijos, en lugar de un delimitador claro como comas o tabulaciones. ¿Cómo manejar estos casos sin tropezar? Es más sencillo de lo que imaginas.

¿Cómo especificar el formato de columnas con espacios fijos?

Para cargar archivos en Redshift cuyo formato tiene columnas delimitadas por espacios fijos, debes especificar la longitud exacta que ocupa cada columna. El método para ello, aunque pueda parecer intimidante al inicio, se resume en indicar los rangos de cada campo:

COPY tabla_destino
FROM 's3://ruta-del-archivo'
CREDENTIALS 'aws_access_key_id=...;aws_secret_access_key=...'
FIXEDWIDTH '1:1,9:10,9:19,2:29,10:31';

Aquí, FIXEDWIDTH señala que la primera columna ocupa un solo espacio de longitud, la segunda y tercera ocupan nueve, la cuarta dos, y la quinta diez.

¿Qué ventajas tiene usar archivos de manifiesto?

El uso de archivos de manifiesto es otra potente característica de Redshift, especialmente cuando se manipulan múltiples archivos a la vez. En lugar de procesar cada archivo por separado, un archivo de manifiesto te permite gestionar todo en una sola operación.

¿Cómo funcionan los archivos de manifiesto?

Un archivo de manifiesto es básicamente un documento JSON que dicta qué archivos cargar y desde dónde. Este te ayuda a especificar condiciones como si el cargue del archivo es obligatorio o no:

{
  "entries": [
    {"url":"s3://ruta/cargue1.csv", "mandatory":true},
    {"url":"s3://ruta/cargue2.csv", "mandatory":false}
  ]
}

La instrucción COPY se simplifica, al indicar únicamente el archivo de manifiesto:

COPY tabla_destino
FROM 's3://ruta-del-archivo-de-manifiesto'
CREDENTIALS 'aws_access_key_id=...;aws_secret_access_key=...'
MANIFEST;

Con esta técnica, puedes cargar múltiples archivos distribuidos en diferentes carpetas o buckets.

¿Cómo optimizar la carga de datos con compresión automática?

Redshift tiene una funcionalidad que permite optimizar automáticamente la carga de datos con compresión, utilizándola se aseguran los niveles más altos de desempeño y eficiencia.

¿Qué es la compresión automatizada con COPY?

El comando COPY puede analizar los datos durante la carga y ajustar la estructura de la tabla para aplicar las mejores técnicas de compresión posibles. Se realiza mediante el uso de la opción COMPUPDATE:

COPY tabla_destino
FROM 's3://ruta-del-archivo-datos'
CREDENTIALS 'aws_access_key_id=...;aws_secret_access_key=...'
COMPUPDATE ON;

Aquí, COMPUPDATE ON permite que Redshift:

  1. Analice la parte inicial de los datos.
  2. Determine los algoritmos óptimos de compresión para cada columna.
  3. Vuelva a crear y cargar los datos con esta nueva configuración eficiente.

Utilizar el comando de compresión automática garantiza no solo almacenamiento óptimo, sino también mejoras sustanciales en el rendimiento de consultas.

Con estas técnicas, cargar datos en Redshift, sin importar su origen o formato, se vuelve una tarea gestionable y eficiente. Estas prácticas no solo mejoran la agilidad al manejar datos, sino que también optimizan el almacenamiento y acceso a los mismos. Sigue explorando estas opciones y adapta cada técnica a tu flujo de trabajo para maximizar los beneficios.