Transmisión de datos de diarios desde Amazon QLDB - Amazon Quantum Ledger Database (Amazon QLDB)

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Transmisión de datos de diarios desde Amazon QLDB

Amazon QLDB utiliza un registro transaccional inmutable, conocido como diario, para el almacenamiento de datos. El diario realiza un seguimiento de cada cambio en los datos confirmados y mantiene un historial de cambios completo y que se pueda verificar con el paso del tiempo.

Puede crear una secuencia de QLDB que capture todas las revisiones de documentos consignadas en su diario y entregue estos datos a Amazon Kinesis Data Streams en tiempo prácticamente real. Un secuencia de QLDB es un flujo continuo de datos desde el diario de su libro mayor a un recurso de flujo de datos de Kinesis.

A continuación, puede utilizar la plataforma de transmisión de Kinesis Client Library para consumir su secuencia, procesar los registros de datos y analizar el contenido de los datos. Un secuencia de QLDB escribe sus datos en Kinesis Data Streams en tres tipos de registros: control, resumen de bloques y detalles de revisión. Para obtener más información, consulte Registros de secuencia de QLDB en Kinesis.

Casos de uso comunes

Las secuencias le permiten utilizar QLDB como una fuente de información fiable única y verificable, a la vez que integra los datos de su diario con otros servicios. Los siguientes son algunos de los casos de uso comunes admitidos por las secuencias de QLDB:

  • Arquitectura basada en eventos: cree aplicaciones en un estilo arquitectónico basado en eventos con componentes disociados. Por ejemplo, un banco puede usar AWS Lambda funciones para implementar un sistema de notificación que avise a los clientes cuando el saldo de su cuenta caiga por debajo de un umbral. En un sistema de este tipo, los saldos de las cuentas se mantienen en un libro mayor de QLDB y cualquier cambio de saldo se registra en el diario. La AWS Lambda función puede activar la lógica de notificaciones al consumir un evento de actualización de saldo que se registra en el diario y se envía a una transmisión de datos de Kinesis.

  • Análisis en tiempo real: cree aplicaciones de Kinesis para consumidores que ejecuten análisis en tiempo real de los datos de eventos. Con esta capacidad, puede obtener información prácticamente en tiempo real y responder rápidamente a un entorno empresarial cambiante. Por ejemplo, un sitio web de comercio electrónico puede analizar los datos de ventas de un producto y detener la publicidad de un producto con descuento tan pronto como las ventas alcancen un límite.

  • Análisis histórico: aproveche la arquitectura orientada a diarios de Amazon QLDB reproduciendo datos de eventos históricos. Puede elegir iniciar una secuencia de QLDB en cualquier momento del pasado, en el que todas las revisiones realizadas desde ese momento se envíen a Kinesis Data Streams. Con esta característica, puede crear aplicaciones de Kinesis para consumidores que ejecuten trabajos de análisis con datos históricos. Por ejemplo, un sitio web de comercio electrónico puede ejecutar análisis según sea necesario para generar métricas de ventas pasadas que no se recopilaron anteriormente.

  • Replicación en bases de datos personalizadas: conecte los libros mayores de QLDB con otros almacenes de datos diseñados específicamente mediante secuencias de diarios de QLDB. Por ejemplo, utilice la plataforma de datos de streaming Kinesis para integrarla con Amazon OpenSearch Service, que puede proporcionar funciones de búsqueda de texto completo para documentos QLDB. También puede crear aplicaciones Kinesis personalizadas para consumidores a fin de replicar los datos de su diario en otras bases de datos personalizadas que ofrecen diferentes vistas materializadas. Por ejemplo, replique en Amazon Aurora para datos relacionales o en Amazon Neptune para datos basados en gráficos.

Consumir la secuencia

Puede utilizar Kinesis Data Streams para consumir, procesar y analizar continuamente grandes secuencias de registros de datos. Además de Kinesis Data Streams, la plataforma de transmisión de datos Kinesis incluye Amazon Data Firehose y Amazon Managed Service para Apache Flink. Puede utilizar esta plataforma para enviar registros de datos directamente a servicios como Amazon OpenSearch Service, Amazon Redshift, Amazon S3 o Splunk. Para obtener más información, consulte Kinesis Data Streams para consumidores en la Guía para desarrolladores de Amazon Kinesis Data Streams.

También puede usar la biblioteca de clientes de Kinesis (KCL) para crear una aplicación de consumo de secuencias que procese los registros de datos de forma personalizada. KCL simplifica la codificación porque proporciona abstracciones útiles por encima del API de bajo nivel de Kinesis Data Streams. Para obtener más información sobre KCL, consulte la sección Uso de la biblioteca de clientes Kinesis en la Guía de desarrolladores de Amazon Kinesis Data Streams.

Garantía de entrega

Las transmisiones de QLDB ofrecen at-least-onceuna garantía de entrega. Cada registro de datos generado por una secuencia de QLDB se entrega a Kinesis Data Streams al menos una vez. Los mismos registros pueden aparecer en un flujo de datos de Kinesis varias veces. Por lo tanto, debe tener una lógica de duplicación en la capa de aplicaciones de consumo si su caso de uso lo requiere.

Tampoco hay garantías de pedido. En algunas circunstancias, los bloques y las revisiones de QLDB se pueden generar en un flujo de datos de Kinesis de forma desordenada. Para obtener más información, consulte Manejo de duplicados y registros out-of-order.

Consideraciones sobre la latencia de entrega

Las secuencias de QLDB normalmente envían actualizaciones a Kinesis Data Streams casi en tiempo real. Sin embargo, los siguientes escenarios podrían crear una latencia adicional antes de que los datos de QLDB recién confirmados se emitan a un flujo de datos de Kinesis:

  • Kinesis puede limitar los datos que se transmiten desde QLDB, en función del aprovisionamiento de Kinesis Data Streams. Por ejemplo, esto puede ocurrir si tiene varias secuencias de QLDB que escriben en un solo flujo de datos de Kinesis y la tasa de solicitudes de QLDB supera la capacidad del recurso de flujo de Kinesis. La limitación en Kinesis también puede producirse cuando se utiliza el aprovisionamiento bajo demanda si el rendimiento aumenta a más del doble del pico anterior en menos de 15 minutos.

    Puede medir este rendimiento superado supervisando la métrica WriteProvisionedThroughputExceeded de Kinesis. Para obtener más información y posibles soluciones, consulte ¿Cómo se solucionan los errores de limitación en Kinesis Data Streams?

  • Con los secuencias de QLDB, puede crear un flujo indefinido con una fecha y hora de inicio pasadas y sin fecha ni hora de finalización. Por diseño, QLDB comienza a emitir los datos recién confirmados a Kinesis Data Streams solo después de que todos los datos anteriores a la fecha y hora de inicio especificadas se hayan entregado correctamente. Si percibe una latencia adicional en este escenario, puede que tenga que esperar a que se entreguen los datos anteriores o puede iniciar el flujo a partir de una fecha y hora de inicio posteriores.

Introducción a los flujos

A continuación, se ofrece una descripción general de alto nivel de los pasos necesarios para empezar a transmitir los datos del diario a Kinesis Data Streams:

  1. Creación de un recurso de Kinesis Data Streams. Para obtener instrucciones, consulte Creación y actualización de flujos de datos en la Guía para desarrolladores de Amazon Kinesis Data Streams.

  2. Cree un rol de IAM que permita a QLDB asumir permisos de escritura para el flujo de datos de Kinesis. Para ver instrucciones, consulte Permisos de secuencia en QLDB.

  3. Cree una secuencia de diario de QLDB. Para ver instrucciones, consulte Creación y administración de flujos en QLDB.

  4. Consuma el flujo de datos de Kinesis, tal y como se describe en la sección Consumir la secuenciaanterior. Para ver ejemplos de código que muestran cómo usar la biblioteca de clientes de Kinesis o consulte AWS Lambda. Desarrollo con secuencias en QLDB