Streaming de datos de diario 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.

Streaming de datos de diario desde Amazon QLDB

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

Puede crear unaflujo deen QLDB que captura cada revisión del documento que está comprometida con su revista y entrega estos datos aAmazon Kinesis Data Streamscasi en tiempo real. Una transmisión de QLDB es un flujo continuo de datos desde el diario del libro mayor hasta un recurso de transmisión de datos de Kinesis.

A continuación, utiliza la plataforma de streaming de Kinesis o elBiblioteca de cliente de Kinesispara consumir su transmisión, procesar los registros de datos y analizar el contenido de los datos. Una transmisión de QLDB escribe sus datos en Kinesis Data Streams en tres tipos de registros:control,resumen de bloques, yDetalles de revisión. Para obtener más información, consulte Registros de transmisión de QLDB en Kinesis.

Casos de uso comunes

La transmisión le permite usar QLDB como una fuente única y verificable de verdad, al tiempo que integra los datos de su diario con otros servicios. Los siguientes son algunos de los casos de uso comunes admitidos por las transmisiones de revistas de QLDB:

  • Arquitectura basada en eventoscree aplicaciones en un estilo arquitectónico basado en eventos con componentes desacoplados. Por ejemplo, un banco puede usarAWS Lambdafunciona para implementar un sistema de notificación que alerta a los clientes cuando el saldo de su cuenta cae por debajo de un umbral. En dicho sistema, los saldos de las cuentas se mantienen en un libro mayor QLDB y cualquier cambio de saldo se registra en el diario. LaAWS Lambdapuede activar la lógica de notificación al consumir un evento de actualización de saldo que se confirma en el diario y se envía a una transmisión de datos de Kinesis.

  • Análisis en tiempo realcree aplicaciones para consumidores de Kinesis que ejecuten análisis en tiempo real de los datos de eventos. Con esta capacidad, puede obtener información casi 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 productos y detener la publicidad de un producto con descuento tan pronto como las ventas alcancen un límite.

  • Análisis históricoaproveche la arquitectura orientada al diario de Amazon QLDB mediante la reproducción de datos históricos de eventos. Puede elegir iniciar una transmisión de QLDB a partir de cualquier punto en el pasado, en el que todas las revisiones desde ese momento se entregan a Kinesis Data Streams. Con esta función, puede crear aplicaciones para consumidores de Kinesis que ejecuten trabajos de análisis en datos históricos. Por ejemplo, un sitio web de comercio electrónico puede ejecutar análisis ad hoc para generar métricas de ventas anteriores que no se capturaron previamente.

  • Replicación en bases de datos especialmente diseñadasConnect los libros de contabilidad de QLDB a otros almacenes de datos especialmente diseñados mediante flujos de diario de QLDB. Por ejemplo, utilice la plataforma de transmisión de datos de Kinesis para integrarse con Amazon OpenSearch Servicio, que puede proporcionar capacidades de búsqueda de texto completo para documentos QLDB. También puede crear aplicaciones personalizadas para consumidores de Kinesis para replicar los datos de su diario en otras bases de datos especialmente diseñadas que proporcionan diferentes vistas materializadas. Por ejemplo, realice replicaciones en Amazon Aurora para datos relacionales o en Amazon Neptune para datos basados en gráficos.

Consumir tu transmisión

Utilice Kinesis Data Streams para consumir, procesar y analizar de forma continua grandes transmisiones de registros de datos. Además de Kinesis Data Streams, la plataforma de datos de streaming de Kinesis incluyeAmazon Kinesis Data FirehoseyAmazon Kinesis Data Analytics. Puedes usar esta plataforma para enviar registros de datos directamente a servicios como Amazon OpenSearch Service, Amazon Redshift, Amazon Simple Storage Service (Amazon S3) o Splunk. Para obtener más información, consulteClientes de Kinesis Data Streamsen laGuía para desarrolladores de Amazon Kinesis Data Streams.

También puede usar Kinesis Client Library (KCL) para crear una aplicación de consumidor de transmisión para procesar 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 la KCL, consulteDesarrollo de consumidores mediante Kinesis Client Libraryen laGuía para desarrolladores de Amazon Kinesis Data Streams.

Garantía de entrega

Las transmisiones de QLDB proporcionan unaat-least-oncegarantía de entrega. Cadaregistro de datosque produce una transmisión de QLDB se entrega a Kinesis Data Streams al menos una vez. Los mismos registros pueden aparecer en una transmisión de datos de Kinesis varias veces. Por lo tanto, debe tener una lógica de deduplicación en la capa de aplicación del consumidor si su caso de uso lo requiere.

Tampoco hay garantías de pedido. En algunos casos, se pueden producir bloqueos y revisiones de QLDB en una transmisión de datos de Kinesis fuera de servicio. Para obtener más información, consulte Control de duplicados y out-of-orderRegistros.

Consideraciones sobre la latencia

Las transmisiones de QLDB suelen ofrecer actualizaciones de Kinesis Data Streams casi en tiempo real. Sin embargo, los siguientes escenarios pueden crear una latencia adicional antes de que los datos de QLDB recién confirmados se emitan a una transmisión 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 transmisiones de QLDB que escriben en una sola transmisión de datos de Kinesis y la tasa de solicitudes de QLDB supera la capacidad del recurso de transmisión de Kinesis. La limitación en Kinesis también se puede producir cuando se usa 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 excedido mediante la supervisión de la métrica de Kinesis.WriteProvisionedThroughputExceeded. Para obtener más información y posibles soluciones, consulte.¿Cómo soluciono los errores de limitación en Kinesis Data Streams?.

  • Con las transmisiones de QLDB, puede crear una transmisión indefinida con unfecha y hora de inicioen el pasado y sinfecha y hora de finalización. Por diseño, QLDB comienza a emitir datos recién confirmados a Kinesis Data Streams solo después de que todos los datos anteriores de la fecha y hora de inicio especificadas se hayan entregado correctamente. Si percibes latencia adicional en este escenario, es posible que tengas que esperar a que se entreguen los datos anteriores o puedes iniciar la transmisión desde una fecha y hora de inicio posteriores.

Introducción a secuencias

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

  1. Cree un recurso de Kinesis Data Streams. Para obtener instrucciones, consulteCreación y actualización de secuencias de datos deen laGuía para desarrolladores de Amazon Kinesis Data Streams.

  2. Cree un Rol de IAM que permita a QLDB asumir permisos de escritura para la secuencia de datos de Kinesis. Para obtener instrucciones, consulte Permisos de transmisión en QLDB.

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

  4. Consumir la transmisión de datos de Kinesis, como se describe en la sección anteriorConsumir tu transmisión. Para obtener ejemplos de código que muestran cómo utilizar la biblioteca de clientes de Kinesis oAWS Lambda, consulteDesarrollo con streams en QLDB.