Captura de datos de cambio con Amazon DynamoDB - Amazon DynamoDB

Captura de datos de cambio con Amazon DynamoDB

Muchas aplicaciones se benefician capturando los cambios en los elementos almacenados en una tabla de DynamoDB en el momento en que se producen. A continuación se muestran algunos ejemplos de casos de uso:

  • Una aplicación móvil popular modifica los datos de una tabla de DynamoDB a razón de miles de actualizaciones por segundo. Otra aplicación captura y almacena los datos sobre estas actualizaciones y ofrece métricas de uso de la aplicación para móviles prácticamente en tiempo real.

  • Una aplicación financiera modifica los datos del mercado de valores en una tabla de DynamoDB. Diferentes aplicaciones que se ejecutan en paralelo rastrean estos cambios en tiempo real, calculan el valor en riesgo y reequilibran automáticamente las carteras en función de los movimientos del precio de las acciones.

  • Los sensores en vehículos de transporte y equipos industriales envían datos a una tabla de DynamoDB. Diferentes aplicaciones monitorean el rendimiento y envían alertas de mensajería cuando se detecta un problema, predicen posibles defectos aplicando algoritmos de aprendizaje automático y comprimen y archivan datos en Amazon Simple Storage Service (Amazon S3).

  • Una aplicación envía automáticamente notificaciones a los dispositivos móviles de todos los amigos de un grupo tan pronto como uno de ellos carga una nueva imagen.

  • Un nuevo cliente agrega datos a una tabla de DynamoDB. Este evento invoca otra aplicación que envía un mensaje de correo electrónico de bienvenida al nuevo cliente.

DynamoDB admite el streaming de registros de captura de datos de cambio a nivel de elemento en tiempo casi real. Puede crear aplicaciones que consuman estas transmisiones y adopten medidas en función de su contenido.

El siguiente vídeo le ofrece una introducción al concepto de captación de datos de cambios.

Opciones de streaming para la captura de datos de cambio

DynamoDB ofrece dos modelos de streaming para la captura de datos de cambios: Kinesis Data Streams para DynamoDB y DynamoDB Streams.

Para ayudarle a elegir la solución adecuada para su aplicación, la siguiente tabla resume las características de cada modelo de streaming.

Propiedades Kinesis Data Streams para DynamoDB DynamoDB Streams
Retención de datos Hasta 1 año. 24 horas.
Compatibilidad con Kinesis Client Library (KCL) Admite Versiones 1.X y 2.X de KCL. Admite KCL versión 1.X.
Número de consumidores Hasta 5 consumidores simultáneos por fragmento, o hasta 20 consumidores simultáneos por fragmento con fan-out mejorado. Hasta 2 consumidores simultáneos por fragmento.
Cuotas de rendimiento Sin límite. Sujeto a las cuotas de rendimiento por tabla de DynamoDB y región de AWS.
Modelo de entrega de registros Uso de modelos a través de HTTP GetRecords y con fan-out mejorado, Kinesis Data Streams envía los registros a través de HTTP/2 mediante el uso de SubscribeToShard. Modelo de extracción a través de HTTP utilizando GetRecords.
Ordenación de registros El atributo timestamp de cada registro de transmisión se puede utilizar para identificar el orden real en el que se produjeron los cambios en la tabla DynamoDB. Para cada elemento que se modifica de una tabla de DynamoDB, los registros de transmisión aparecen en el mismo orden en que se han realizado las modificaciones del elemento.
Registros duplicados Los registros duplicados pueden aparecer ocasionalmente en la transmisión. No aparecen registros duplicados en la transmisión.
Opciones de procesamiento de flujos Procese los registros de transmisiones mediante AWS Lambda, Amazon Managed Service para Apache Flink, Kinesis data Firehose o ETL de streaming de AWS Glue. Procesar registros de transmisión mediante AWS Lambda o el Adaptador Kinesis de DynamoDB Streams.
Nivel de durabilidad Zonas de disponibilidad para proporcionar una conmutación por error automática sin interrupciones. Zonas de disponibilidad para proporcionar una conmutación por error automática sin interrupciones.

Puede habilitar ambos modelos de streaming en la misma tabla de DynamoDB.

En las siguientes charlas de vídeo, se comparan las diferencias entre las dos opciones.