Développement avec des flux dans QLDB - Amazon Quantum Ledger Database (Amazon QLDB)

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Développement avec des flux dans QLDB

Cette section résume les opérations d'API que vous pouvez utiliser avec un AWS SDK ou AWS CLI pour créer et gérer des flux de journaux dans Amazon QLDB. Il décrit également les exemples d'applications qui illustrent ces opérations et utilisent la Kinesis Client Library (KCL) ou AWS Lambda pour implémenter un consommateur de flux.

Vous pouvez utiliser la KCL pour créer des applications grand public pour Amazon Kinesis Data Streams. La KCL simplifie le codage en fournissant des abstractions utiles par-dessus l'API Kinesis Data Streams de bas niveau. Pour en savoir plus sur la KCL, consultez la section Utilisation de la bibliothèque cliente Kinesis dans le guide du développeur Amazon Kinesis Data Streams.

API de flux de journaux QLDB

L'API QLDB fournit les opérations de flux de journal suivantes destinées aux programmes d'application :

  • StreamJournalToKinesis— Crée un flux de journal pour un registre QLDB donné. Le flux capture toutes les révisions de documents enregistrées dans le journal du registre et transmet les données à une ressource Kinesis Data Streams spécifiée.

    • L'agrégation d'enregistrements dans Kinesis Data Streams est activée par défaut. Cette option permet à QLDB de publier plusieurs enregistrements de données dans un seul enregistrement Kinesis Data Streams, augmentant ainsi le nombre d'enregistrements envoyés par appel d'API.

      L'agrégation d'enregistrements a des implications importantes pour le traitement des enregistrements et nécessite une désagrégation chez votre consommateur de flux. Pour en savoir plus, consultez les concepts clés du KPL et la désagrégation des consommateurs dans le manuel Amazon Kinesis Data Streams Developer Guide.

  • DescribeJournalKinesisStream— Renvoie des informations détaillées sur un flux de journal QLDB donné. La sortie inclut l'ARN, le nom du flux, l'état actuel, l'heure de création et les paramètres de votre demande de création de flux d'origine.

  • ListJournalKinesisStreamsForLedger— Renvoie une liste de tous les descripteurs de flux de journaux QLDB pour un registre donné. La sortie de chaque descripteur de flux inclut les mêmes détails que ceux renvoyés parDescribeJournalKinesisStream.

  • CancelJournalKinesisStream— Termine un flux de journal QLDB donné. Avant qu'un stream puisse être annulé, son statut actuel doit êtreACTIVE.

    Vous ne pouvez pas redémarrer un stream après l'avoir annulé. Pour reprendre la livraison de vos données vers Kinesis Data Streams, vous pouvez créer un nouveau flux QLDB.

Pour une description complète de ces opérations d'API, consultez leRéférence d'API Amazon QLDB.

Pour plus d'informations sur la création et la gestion de flux de journaux à l'aide du AWS CLI, consultez la référence des AWS CLI commandes.

Exemples d’applications

QLDB fournit des exemples d'applications illustrant diverses opérations à l'aide de flux de journaux. Ces applications sont open source sur le GitHub site AWS Samples.

Opérations de base (Java)

Pour un exemple de code Java illustrant les opérations de base pour les flux de journaux QLDB, consultez GitHub le référentiel aws-samples/ -java. amazon-qldb-dmv-sample Pour obtenir des instructions sur le téléchargement et l'installation de cet exemple d'application, consultezInstallation de l'exemple d'application Java Amazon QLDB.

Note

Après avoir installé l'application, ne passez pas à l'étape 1 du didacticiel Java pour créer un registre. Cet exemple d'application pour le streaming crée le vehicle-registration registre pour vous.

Cet exemple d'application contient le code source complet à partir de Tutoriel Java et de ses dépendances, y compris les modules suivants :

  • AWS SDK for Java— Pour créer et supprimer les ressources QLDB et Kinesis Data Streams, notamment les registres, les flux de journaux QLDB et les flux de données Kinesis.

  • Pilote Amazon QLDB pour Java— Pour exécuter des transactions de données sur un registre à l'aide d'instructions partiQL, notamment en créant des tables et en insérant des documents.

  • Bibliothèque cliente Kinesis : pour consommer et traiter les données d'un flux de données Kinesis.

Exécution du code

La StreamJournalclasse contient un code didacticiel illustrant les opérations suivantes :

  1. Créez un registre nommévehicle-registration, créez des tables et chargez-les avec des exemples de données.

    Note

    Avant d'exécuter ce code, assurez-vous qu'aucun registre actif n'est déjà nommévehicle-registration.

  2. Créez un flux de données Kinesis, un rôle IAM qui permet à QLDB d'assumer des autorisations d'écriture pour le flux de données Kinesis et un flux de journal QLDB.

  3. Utilisez la KCL pour démarrer un lecteur de flux qui traite le flux de données Kinesis et enregistre chaque enregistrement de données QLDB.

  4. Utilisez les données du flux pour valider la chaîne de hachage du registre d'vehicle-registrationéchantillons.

  5. Nettoyez toutes les ressources en arrêtant le lecteur de flux, en annulant le flux de journal QLDB, en supprimant le registre et en supprimant le flux de données Kinesis.

Pour exécuter le code du StreamJournal didacticiel, entrez la commande Gradle suivante depuis le répertoire racine de votre projet.

./gradlew run -Dtutorial=streams.StreamJournal

Intégration avec OpenSearch le service (Python)

Pour un exemple d'application Python qui montre comment intégrer un flux QLDB à OpenSearch Amazon Service, consultez GitHub le référentiel aws-samples/ -. amazon-qldb-streaming-amazon opensearch-service-sample-python Cette application utilise une AWS Lambda fonction pour implémenter un consommateur Kinesis Data Streams.

Pour cloner le référentiel, entrez la git commande suivante.

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

Pour exécuter l'exemple d'application, consultez le fichier README activé GitHub pour obtenir des instructions.

Intégration avec Amazon SNS et Amazon SQS (Python)

Pour un exemple d'application Python qui montre comment intégrer un flux QLDB à Amazon Simple Notification Service (Amazon SNS), consultez le référentiel aws-samples/ -. GitHub amazon-qldb-streams-dmv sample-lambda-python

Cette application utilise une AWS Lambda fonction pour implémenter un consommateur Kinesis Data Streams. Il envoie des messages à une rubrique Amazon SNS à laquelle une file d'attente Amazon Simple Queue Service (Amazon SQS) est abonnée.

Pour cloner le référentiel, entrez la git commande suivante.

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

Pour exécuter l'exemple d'application, consultez le fichier README activé GitHub pour obtenir des instructions.