Carga de datos en Amazon Redshift - Amazon Redshift

Carga de datos en Amazon Redshift

Existen varias formas de cargar datos en una base de datos de Amazon Redshift. Un origen popular de datos para cargar son los archivos de Amazon S3. En la siguiente tabla se resumen algunos de los métodos que se utilizarán al empezar desde un origen de Amazon S3.

Método a utilizar Descripción Cuando se necesita un método

COPY command

Ejecuta una ingesta de archivos por lotes para cargar datos de los archivos de Amazon S3. Este método aprovecha las capacidades de procesamiento en paralelo de Amazon Redshift. Para obtener más información, consulte Carga de tablas con el comando COPY.

Debe usarse cuando se necesiten requisitos básicos de carga de datos para iniciar la ingesta manual de archivos por lotes. Este método se utiliza principalmente con canalizaciones de ingesta de archivos personalizadas y de terceros o cargas de trabajo de ingesta de archivos puntuales.

COPY... Comando CREATE JOB (copia automática)

Ejecuta los comandos COPY automáticamente cuando se crea un nuevo archivo en las rutas rastreadas de Amazon S3. Para obtener más información, consulte Carga de archivos con ingesta continua de archivos desde Amazon S3 (versión preliminar).

Se debe usar cuando una canalización de ingesta de archivos necesite ingerir datos automáticamente al crear un nuevo archivo en Amazon S3. Amazon Redshift hace un seguimiento de los archivos que se pueden ingerir para evitar la duplicación de datos. Este método requiere que los propietarios de los buckets de Amazon S3 lo configuren.

Carga desde consultas de lagos de datos

Cree tablas externas para ejecutar consultas de lagos de datos en los archivos de Amazon S3 y, a continuación, ejecute el comando INSERT INTO para cargar los resultados de las consultas de los lagos de datos en las tablas locales. Para obtener más información, consulte Tablas externas para Redshift Spectrum.

Se debe utilizar en cualquiera de los siguientes escenarios:

  • Carga de AWS Glue y formatos de tabla abiertos (como Apache Iceberg, Apache Hudi o Delta Lake).

  • Los archivos de origen se deben ingerir parcialmente (por ejemplo, se necesitan para ejecutar una cláusula WHERE para ingerir determinadas filas).

  • Se necesita más flexibilidad para ingerir determinadas columnas (como ejecutar un comando SELECT) o realizar transformaciones de datos básicas sobre la marcha (como aplicar operaciones básicas o llamar a las UDF en los valores del archivo de origen).

Otros métodos que puede considerar

Ingesta de streaming

La ingesta de streaming proporciona una ingesta de alta velocidad y baja latencia de datos de flujos de Amazon Kinesis Data Streams y Amazon Managed Streaming para Apache Kafka en una vista materializada de Amazon Redshift aprovisionado o Redshift sin servidor. Para obtener más información, consulte Introducción a la ingesta de streaming de Amazon Kinesis Data Streams y Introducción a la ingesta de streaming de Amazon Managed Streaming para Apache Kafka (Amazon MSK).

Debe tenerse en cuenta para los casos de uso en los que los datos se transmiten primero a archivos en Amazon S3 y, después, se cargan desde Amazon S3. Si no es necesario conservar los datos en Amazon S3, a menudo puede considerar la posibilidad de transmitirlos directamente a Amazon Redshift.

Ejecución de consultas del lago de datos

Ejecución de consultas directamente desde una tabla de un lago de datos en lugar de ingerir el contenido de la tabla a una tabla local. Para obtener más información, consulte Amazon Redshift Spectrum.

Se debe usar cuando el caso de uso no requiera el rendimiento de consultas de tablas locales en Amazon Redshift.

Carga por lotes con el editor de consultas de Amazon Redshift v2

Puede preparar y ejecutar las cargas de trabajo de ingesta de archivos por lotes visualmente en el editor de consultas de Amazon Redshift v2. Para obtener más información, consulte Carga de datos desde S3 en la Guía de administración de Amazon Redshift.

Se debe usar cuando desee que el editor de consultas v2 prepare las instrucciones COPY y desee una herramienta visual que simplifique el proceso de preparación de las instrucciones COPY.

Carga de datos desde un archivo local con el editor de consultas de Amazon Redshift v2

Puede cargar archivos directamente desde el escritorio a las tablas de Amazon Redshift sin necesidad de cargar los archivos manualmente en Amazon S3. Para obtener más información, consulte Carga de datos desde una configuración de archivo local y flujo de trabajo en la Guía de administración de Amazon Redshift.

Se debe usar cuando necesite cargar archivos rápidamente desde el equipo local para realizar consultas únicas. Con este método, el editor de consultas de Amazon Redshift v2 almacena temporalmente el archivo en un bucket de Amazon S3 propiedad del cliente y ejecuta un comando de copia mediante esta ruta de Amazon S3.

La forma más eficiente de cargar una tabla es mediante el comando COPY. También puede agregar datos a las tablas mediante el uso de los comandos INSERT, aunque ese método es menos efectivo que usar COPY. El comando COPY puede leer datos de diferentes archivos y flujos de datos de forma simultánea. Amazon Redshift asigna la carga de trabajo a los nodos de Amazon Redshift y realiza las operaciones de carga en paralelo, incluida la ordenación de las filas y la distribución de los datos entre los sectores de los nodos.

nota

Las tablas externas de Amazon Redshift Spectrum solo se pueden leer. No puede utilizar COPY ni INSERT en una tabla externa.

Para acceder a los datos en otros recursos de AWS, Amazon Redshift debe tener permiso para acceder a tales recursos y para realizar las acciones necesarias para acceder a los datos. Puede usar AWS Identity and Access Management (IAM) para limitar el acceso de los usuarios a los datos y recursos de Amazon Redshift.

Tras la carga de datos inicial, si agrega, modifica o elimina una cantidad de datos significativa, a continuación debe ejecutar un comando VACUUM para reorganizar los datos y recuperar espacio tras las eliminaciones. También debe ejecutar un comando ANALYZE para actualizar las estadísticas de la tabla.