Desarrollo con secuencias en 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.

Desarrollo con secuencias en QLDB

En esta sección se resumen las operaciones de la API que puede utilizar con un AWS SDK o AWS CLI para crear y gestionar transmisiones de diarios en Amazon QLDB. También describe los ejemplos de aplicaciones que demuestran estas operaciones y utilizan la biblioteca de clientes de Kinesis (KCL) o AWS Lambda para implementar un consumidor de secuencias.

Puede utilizar la KCL para crear aplicaciones de consumo para Amazon Kinesis Data Streams. 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.

API de secuencia de diarios de QLDB

La API de QLDB ofrece las siguientes operaciones de secuencia de diarios para usarlas en los programas de aplicación:

  • StreamJournalToKinesis: crea una secuencia de diario para un libro mayor de QLDB determinado. La secuencia captura cada revisión del documento consignada al diario de su libro mayor y entrega los datos a un recurso de Kinesis Data Streams especificado.

    • La agregación de registros en Kinesis Data Streams está habilitada de forma predeterminada. Esta opción permite a QLDB publicar varios registros de datos en un único registro de Kinesis Data Streams, lo que aumenta el número de registros enviados por llamada a la API.

      La agregación de registros tiene importantes implicaciones para el procesamiento de registros y requiere la desagrupación en su consumidor de flujos. Para obtener más información, consulte Conceptos clave de KPL y Desagrupación del consumidor en la Guía para desarrolladores de Amazon Kinesis Data Streams.

  • DescribeJournalKinesisStream: devuelve información detallada sobre una secuencia de diario determinada de QLDB. El resultado incluye el ARN, el nombre de la secuencia, el estado actual, la hora de creación y los parámetros de la solicitud de creación de la secuencia original.

  • ListJournalKinesisStreamsForLedger: devuelve una lista de los descriptores de las secuencias de diarios QLDB de un libro mayor determinado. El resultado de cada descriptor de secuencia incluye los mismos detalles que devuelve DescribeJournalKinesisStream.

  • CancelJournalKinesisStream: finaliza una secuencia de diario de QLDB determinado. Para poder cancelar una secuencia, su estado actual debe ser ACTIVE.

    No puede reiniciar una secuencia después de cancelarla. Para reanudar la entrega de sus datos a Kinesis Data Streams, puede crear una nueva secuencia de QLDB.

Para obtener una descripción completa de estas operaciones de API, consulte la Referencia de la API de Amazon QLDB.

Para obtener información sobre cómo crear y administrar transmisiones de diarios mediante el AWS CLI, consulte laAWS CLI Referencia de comandos.

Aplicaciones de muestra

QLDB ofrece ejemplos de aplicaciones que demuestran diversas operaciones mediante secuencias de diarios. Estas aplicaciones son de código abierto en el GitHub sitio deAWS muestras.

Operaciones básicas (Java)

Para ver un ejemplo de código Java que muestre las operaciones básicas de los flujos de diarios de QLDB, consulte el repositorio aws-samples/ GitHub -java. amazon-qldb-dmv-sample Para obtener instrucciones acerca de cómo descargar e instalar esta aplicación de ejemplo, consulte Instalación de la aplicación de ejemplo Java de Amazon QLDB.

nota

Tras instalar la aplicación, no continúe con el paso 1 del tutorial de Java para crear un libro mayor. Este ejemplo de aplicación para streaming crea el libro mayor vehicle-registration automáticamente.

Esta aplicación de ejemplo empaqueta el código fuente completo de Tutorial de Java y sus dependencias, incluidos los siguientes módulos:

  • AWS SDK for Java: para crear y eliminar los recursos de QLDB y Kinesis Data Streams, incluidos los libros mayores, las secuencias de diarios de QLDB y los flujos de datos de Kinesis.

  • Controlador Amazon QLDB para Java: para ejecutar transacciones de datos en un libro mayor mediante instrucciones PartiQL, incluida la creación de tablas y la inserción de documentos.

  • Biblioteca de clientes de Kinesis: para consumir y procesar datos de un flujo de datos de Kinesis.

Ejecutar el código

La StreamJournalclase contiene un código tutorial que muestra las siguientes operaciones:

  1. Cree un libro mayor llamado vehicle-registration, cree tablas y cárguelas con datos de ejemplo.

    nota

    Antes de ejecutar este código, asegúrese de que aún no tiene un libro activo denominado vehicle-registration.

  2. Cree un flujo de datos de Kinesis, un rol de IAM que permita a QLDB asumir permisos de escritura para el flujo de datos de Kinesis y una secuencia de diario de QLDB.

  3. Utilice la KCL para iniciar un lector de secuencias que procese el flujo de datos de Kinesis y registre cada registro de datos de QLDB.

  4. Utilice los datos de la secuencia para validar la cadena de hash del libro mayor de ejemplo vehicle-registration.

  5. Limpie todos los recursos deteniendo el lector de secuencias, cancelando la secuencia de diarios de QLDB, eliminando el libro mayor y eliminando el flujo de datos de Kinesis.

Para ejecutar el código del tutorial StreamJournal, introduzca el siguiente comando de Gradle desde el directorio raíz del proyecto.

./gradlew run -Dtutorial=streams.StreamJournal

Integración con el OpenSearch servicio (Python)

Para ver un ejemplo de aplicación en Python que muestre cómo integrar una transmisión de QLDB con OpenSearch Amazon Service, consulte GitHub el repositorio aws-samples/ -. amazon-qldb-streaming-amazon opensearch-service-sample-python Esta aplicación utiliza una AWS Lambda función para implementar un consumidor de Kinesis Data Streams.

Para clonar el repositorio, introduzca el siguiente comando git.

git clone https://github.com/aws-samples/amazon-qldb-streaming-amazon-opensearch-service-sample-python.git

Para ejecutar la aplicación de ejemplo, consulte las instrucciones en GitHub el archivo README.

Integración con Amazon SNS y Amazon SQS (Python)

Para ver un ejemplo de aplicación de Python que muestre cómo integrar una transmisión de QLDB con Amazon Simple Notification Service (Amazon SNS), consulte el repositorio aws-samples/ -. GitHub amazon-qldb-streams-dmv sample-lambda-python

Esta aplicación utiliza una AWS Lambda función para implementar un consumidor de Kinesis Data Streams. Envía mensajes a un tema de Amazon SNS que tiene una cola de Amazon Simple Queue Service (Amazon SQS) suscrita.

Para clonar el repositorio, introduzca el siguiente comando git.

git clone https://github.com/aws-samples/amazon-qldb-streams-dmv-sample-lambda-python.git

Para ejecutar la aplicación de ejemplo, consulte las instrucciones en GitHub el archivo README.