in

Replicar cambios de bases de datos a tablas de Apache Iceberg mediante Amazon Data Firehose (en versión preliminar) | Servicios web de Amazon

Hoy anunciamos la disponibilidad, en versión preliminar, de una nueva capacidad en Amazon Data Firehose que captura los cambios realizados en bases de datos como PostgreSQL y MySQL y replica las actualizaciones en Iceberg apache tablas en Amazon Simple Storage Service (Amazon S3).

Apache Iceberg es un formato de tabla de código abierto de alto rendimiento para realizar análisis de big data. Apache Iceberg aporta la confiabilidad y simplicidad de las tablas SQL a los lagos de datos de S3 y hace posible que los motores de análisis de código abierto como chispa apache, Apache Flink, trino, colmena apachey Apache Impala trabajar simultáneamente con los mismos datos.

Esta nueva capacidad proporciona una solución sencilla de extremo a extremo para transmitir actualizaciones de bases de datos sin afectar el rendimiento de las transacciones de las aplicaciones de bases de datos. Puede configurar una transmisión de Data Firehose en minutos para entregar cambiar la captura de datos (CDC) actualizaciones de su base de datos. Ahora puede replicar fácilmente datos de diferentes bases de datos en tablas Iceberg en Amazon S3 y utilizar datos actualizados para aplicaciones de análisis y aprendizaje automático (ML) a gran escala.

Los clientes empresariales típicos de Amazon Web Services (AWS) utilizan cientos de bases de datos para aplicaciones transaccionales. Para realizar análisis y aprendizaje automático a gran escala sobre los datos más recientes, desean capturar los cambios realizados en las bases de datos, como cuando se insertan, modifican o eliminan registros en una tabla, y entregar las actualizaciones a su almacén de datos o al lago de datos de Amazon S3 en Formatos de tabla de código abierto como Apache Iceberg.

Para ello, muchos clientes desarrollan trabajos de extracción, transformación y carga (ETL) para leer periódicamente desde bases de datos. Sin embargo, los lectores ETL afectan el rendimiento de las transacciones de la base de datos y los trabajos por lotes pueden agregar varias horas de retraso antes de que los datos estén disponibles para el análisis. Para mitigar el impacto en el rendimiento de las transacciones de la base de datos, los clientes quieren tener la capacidad de transmitir los cambios realizados en la base de datos. Esta secuencia se conoce como secuencia de captura de datos modificados (CDC).

Conocí a varios clientes que utilizan sistemas distribuidos de código abierto, como debeciocon conectores a bases de datos populares, una Conexión Apache Kafka cluster y Kafka Connect Sink para leer los eventos y entregarlos al destino. La configuración inicial y la prueba de dichos sistemas implican la instalación y configuración de múltiples componentes de código abierto. Podrían pasar días o semanas. Después de la configuración, los ingenieros deben monitorear y administrar los clústeres, y validar y aplicar actualizaciones de código abierto, lo que aumenta la sobrecarga operativa.

Con esta nueva capacidad de transmisión de datos, Amazon Data Firehose agrega la capacidad de adquirir y replicar continuamente transmisiones CDC desde bases de datos a tablas Apache Iceberg en Amazon S3. Usted configura una transmisión de Data Firehose especificando el origen y el destino. Data Firehose captura y replica continuamente una instantánea de datos inicial y luego todos los cambios posteriores realizados en las tablas de la base de datos seleccionada como un flujo de datos. Para adquirir transmisiones CDC, Data Firehose utiliza el registro de replicación de la base de datos, lo que reduce el impacto en el rendimiento de las transacciones de la base de datos. Cuando el volumen de actualizaciones de la base de datos aumenta o disminuye, Data Firehose particiona automáticamente los datos y conserva los registros hasta que se entregan al destino. No es necesario aprovisionar capacidad ni administrar y ajustar los clústeres. Además de los datos en sí, Data Firehose puede crear automáticamente tablas de Apache Iceberg utilizando el mismo esquema que las tablas de la base de datos como parte de la creación inicial del flujo de Data Firehose y evolucionar automáticamente el esquema de destino, como la adición de nuevas columnas, según los cambios en el esquema de origen. .

Dado que Data Firehose es un servicio totalmente administrado, no tiene que depender de componentes de código abierto, aplicar actualizaciones de software ni incurrir en gastos operativos.

La replicación continua de los cambios de la base de datos en las tablas de Apache Iceberg en Amazon S3 mediante Amazon Data Firehose le proporciona una solución simple, escalable y administrada de extremo a extremo para entregar flujos de CDC a su lago de datos o almacén de datos, donde puede ejecutar grandes cantidades de datos. análisis de escala y aplicaciones de ML.

Veamos cómo configurar una nueva canalización.
Para mostrarle cómo crear una nueva canalización de CDC, configuro una transmisión de Data Firehose mediante la Consola de administración de AWS. Como de costumbre, también tengo la opción de utilizar la interfaz de línea de comandos de AWS (AWS CLI), los SDK de AWS, AWS CloudFormation o Terraformar.

Para esta demostración, elijo una base de datos MySQL en Amazon Relational Database Service (Amazon RDS) como fuente. Data Firehose también funciona con bases de datos autoadministradas en Amazon Elastic Compute Cloud (Amazon EC2). Para establecer conectividad entre mi nube privada virtual (VPC), donde se implementa la base de datos, y la API de RDS sin exponer el tráfico a Internet, creo un punto final de servicio AWS PrivateLink VPC. Puede aprender a crear un punto de enlace de servicio VPC para la API de RDS siguiendo las instrucciones de la documentación de Amazon RDS.

También tengo un depósito S3 para alojar la tabla Iceberg y tengo un rol de AWS Identity and Access Management (IAM) configurado con los permisos correctos. Puede consultar la lista de requisitos previos en la documentación de Data Firehose.

Para comenzar, abro la consola y navego hasta la sección Amazon Data Firehose. Puedo ver la transmisión ya creada. Para crear uno nuevo, selecciono Crear flujo de Firehose.

Crear flujo de manguera contra incendios

selecciono un Fuente y Destino. En este ejemplo: una base de datos MySQL y tablas Apache Iceberg. También entro un Nombre del arroyo de manguera contra incendios para mi transmisión.

Crear flujo de Firehose - pantalla 1

Introduzco el nombre DNS completo de mi Punto final de la base de datos y el Nombre del servicio del punto final de la VPC de la base de datos. lo verifico Habilitar SSL se comprueba y, bajo nombre secretoselecciono el nombre del secreto en AWS Secrets Manager donde se almacenan de forma segura el nombre de usuario y la contraseña de la base de datos.

Crear flujo de Firehose - pantalla 2

A continuación, configuro Data Firehose para capturar datos específicos especificando bases de datos, tablas y columnas usando nombres explícitos o expresiones regulares.

Debo crear una tabla de marcas de agua. Una marca de agua, en este contexto, es un marcador utilizado por Data Firehose para rastrear el progreso de instantáneas incrementales de tablas de bases de datos. Ayuda a Data Firehose a identificar qué partes de la tabla ya se han capturado y qué partes aún deben procesarse. Puedo crear la tabla de marcas de agua manualmente o dejar que Data Firehose la cree automáticamente. En ese caso, las credenciales de la base de datos pasadas a Data Firehose deben tener permisos para crear una tabla en la base de datos de origen.

Crear flujo de Firehose - pantalla 3

A continuación, configuro la región del depósito S3 y el nombre que se utilizará. Data Firehose puede crear automáticamente las tablas Iceberg cuando aún no existen. De manera similar, puede actualizar el esquema de la tabla Iceberg cuando detecta un cambio en el esquema de su base de datos.

Crear flujo de Firehose - pantalla 4

Como paso final, es importante habilitar el registro de errores de Amazon CloudWatch para obtener comentarios sobre el progreso de la transmisión y los posibles errores. Puede configurar un período de retención breve en el grupo de registros de CloudWatch para reducir el costo del almacenamiento de registros.

Después de haber revisado mi configuración, selecciono Crear flujo de Firehose.

Crear flujo de Firehose - pantalla 5

Una vez creada la transmisión, comenzará a replicar los datos. Puedo monitorear el estado de la transmisión y verificar posibles errores.

Crear flujo de Firehose - pantalla 6

Ahora es el momento de probar la transmisión.

Abro una conexión a la base de datos e inserto una nueva línea en una tabla.

Manguera de bomberos - MySQL

Luego, navego hasta el depósito de S3 configurado como destino y observo que se ha creado un archivo para almacenar los datos de la tabla.

Ver archivos de parquet en el depósito S3

Descargo el archivo e inspecciono su contenido con el parq comando (puedes instalar ese comando con pip install parquet-cli)

Contenido del archivo de parquet

Por supuesto, descargar e inspeccionar Parquet archivos es algo que hago sólo para demostraciones. En la vida real, utilizará AWS Glue y Amazon Athena para administrar su catálogo de datos y ejecutar consultas SQL en sus datos.

Cosas que debes saber
Aquí hay algunas cosas adicionales que debe saber.

Esta nueva capacidad admite bases de datos PostgreSQL y MySQL autoadministradas en Amazon EC2 y las siguientes bases de datos en Amazon RDS:

El equipo continuará agregando soporte para bases de datos adicionales durante el período de versión preliminar y después de la disponibilidad general. Me dijeron que ya están trabajando para admitir bases de datos SQL Server, Oracle y MongoDB.

Data Firehose utiliza AWS PrivateLink para conectarse a bases de datos en su Amazon Virtual Private Cloud (Amazon VPC).

Al configurar un flujo de entrega de Amazon Data Firehose, puede especificar tablas y columnas específicas o utilizar comodines para especificar una clase de tablas y columnas. Cuando usa comodines, si se agregan nuevas tablas y columnas a la base de datos después de crear la secuencia de Data Firehose y si coinciden con el comodín, Data Firehose creará automáticamente esas tablas y columnas en el destino.

Precios y disponibilidad
La nueva capacidad de transmisión de datos está disponible hoy en todas las regiones de AWS excepto en las regiones de China, las regiones de AWS GovCloud (EE. UU.) y las regiones de Asia Pacífico (Malasia). Queremos que evalúe esta nueva capacidad y nos brinde sus comentarios. No hay cargos por su uso al comienzo de la vista previa. En algún momento en el futuro, el precio se fijará según su uso real, por ejemplo, según la cantidad de bytes leídos y entregados. No hay compromisos ni inversiones iniciales. Asegúrese de leer la página de precios para obtener los detalles.

Ahora, configure su primera replicación continua de base de datos en tablas Apache Iceberg en Amazon S3 y visite http://aws.amazon.com/firehose.

— seb



Fuente

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

GIPHY App Key not set. Please check settings

La MacBook Pro M4 tiene una actualización de pantalla secreta de la que Apple no nos habló

Para noviembre, Patch Tuesday incluye tres correcciones de día cero para Windows

Para noviembre, Patch Tuesday incluye tres correcciones de día cero para Windows