Diffusion en continu de données de journaux depuis Amazon 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.

Diffusion en continu de données de journaux depuis Amazon QLDB

Amazon QLDB utilise un journal transactionnel immuable, appelé journal, pour le stockage des données. Le journal suit chaque modification apportée à vos données enregistrées et conserve un historique complet et vérifiable des modifications au fil du temps.

Vous pouvez créer un flux dans QLDB qui capture chaque révision de document enregistrée dans votre journal et transmet ces données à Amazon Kinesis Data Streams en temps quasi réel. Le flux QLDB représente un flux ininterrompu de données allant du journal de votre registre vers une ressource de flux de données Kinesis.

Vous utilisez ensuite la plateforme de streaming Kinesis ou la bibliothèque cliente Kinesis pour utiliser votre flux, traiter les enregistrements de données et analyser le contenu des données. Un flux QLDB écrit vos données dans Kinesis Data Streams sous trois types d'enregistrements : contrôle, résumé des blocs et détails de révision. Pour plus d’informations, consultez Enregistrements de flux QLDB dans Kinesis.

Cas d’utilisation courants

Le streaming vous permet d'utiliser QLDB comme source fiable unique et vérifiable tout en intégrant les données de votre journal à d'autres services. Voici quelques-uns des cas d'utilisation courants pris en charge par les flux de journaux QLDB :

  • Architecture axée sur les événements : créez des applications dans un style architectural axé sur les événements avec des composants découplés. Par exemple, une banque peut utiliser des AWS Lambda fonctions pour mettre en œuvre un système de notification qui alerte les clients lorsque le solde de leur compte tombe en dessous d'un seuil. Dans un tel système, les soldes des comptes sont conservés dans un registre QLDB, et tout changement de solde est enregistré dans le journal. La AWS Lambda fonction peut déclencher la logique de notification lors de la consommation d'un événement de mise à jour du solde qui est enregistré dans le journal et envoyé à un flux de données Kinesis.

  • Analyses en temps réel : créez des applications grand public Kinesis qui exécutent des analyses en temps réel sur les données des événements. Grâce à cette fonctionnalité, vous pouvez obtenir des informations en temps quasi réel et réagir rapidement à l'évolution de l'environnement commercial. Par exemple, un site Web de commerce électronique peut analyser les données de vente de produits et arrêter les publicités pour un produit à prix réduit dès que les ventes atteignent une limite.

  • Analyses historiques — Tirez parti de l'architecture orientée journal d'Amazon QLDB en relisant les données historiques des événements. Vous pouvez choisir de démarrer un flux QLDB à n'importe quel moment dans le passé, dans lequel toutes les révisions effectuées depuis lors sont transmises à Kinesis Data Streams. Grâce à cette fonctionnalité, vous pouvez créer des applications grand public Kinesis qui exécutent des tâches d'analyse sur des données historiques. Par exemple, un site Web de commerce électronique peut exécuter des analyses selon les besoins pour générer des statistiques de ventes passées qui n'avaient pas été capturées auparavant.

  • Réplication vers des bases de données spécialement conçues : connectez les registres QLDB à d'autres magasins de données spécialisés à l'aide des flux de journaux QLDB. Par exemple, utilisez la plateforme de données de streaming Kinesis pour intégrer Amazon OpenSearch Service, qui peut fournir des fonctionnalités de recherche en texte intégral pour les documents QLDB. Vous pouvez également créer des applications Kinesis personnalisées pour répliquer les données de votre journal dans d'autres bases de données spécialement conçues qui fournissent différentes vues matérialisées. Répliquez, par exemple, vers Amazon Aurora pour les données relationnelles ou vers Amazon Neptune pour les données basées sur des graphes.

Consommation de votre stream

Utilisez Kinesis Data Streams pour consommer, traiter et analyser en continu de grands flux d'enregistrements de données. Outre Kinesis Data Streams, la plateforme de données de streaming Kinesis inclut Amazon Data Firehose et Amazon Managed Service pour Apache Flink. Vous pouvez utiliser cette plate-forme pour envoyer des enregistrements de données directement à des services tels qu'Amazon OpenSearch Service, Amazon Redshift, Amazon S3 ou Splunk. Pour plus d'informations, consultez la section destinée aux utilisateurs de Kinesis Data Streams dans le manuel Amazon Kinesis Data Streams Developer Guide.

Vous pouvez également utiliser la bibliothèque client Kinesis (KCL) pour créer une application client de streaming afin de traiter les enregistrements de données de manière personnalisée. 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.

Garantie de livraison

Les flux QLDB offrent at-least-onceune garantie de livraison. Chaque enregistrement de données produit par un flux QLDB est transmis à Kinesis Data Streams au moins une fois. Les mêmes enregistrements peuvent apparaître plusieurs fois dans un flux de données Kinesis. Vous devez donc disposer d'une logique de déduplication dans la couche d'application grand public si votre cas d'utilisation l'exige.

Il n'y a pas non plus de garantie de commande. Dans certains cas, des blocs et des révisions QLDB peuvent être produits dans un flux de données Kinesis de manière désordonnée. Pour plus d’informations, consultez Gestion des doublons et out-of-order des enregistrements.

Considérations relatives au délai de livraison

Les flux QLDB fournissent généralement des mises à jour de Kinesis Data Streams en temps quasi réel. Toutefois, les scénarios suivants peuvent créer une latence supplémentaire avant que les données QLDB nouvellement validées ne soient émises vers un flux de données Kinesis :

  • Kinesis peut limiter les données diffusées depuis QLDB, en fonction de votre approvisionnement en Kinesis Data Streams. Cela peut se produire, par exemple, si plusieurs flux QLDB écrivent dans un seul flux de données Kinesis et que le taux de demandes de QLDB dépasse la capacité de la ressource de flux Kinesis. La limitation dans Kinesis peut également se produire lors de l'utilisation du provisionnement à la demande si le débit augmente pour atteindre plus du double du pic précédent en moins de 15 minutes.

    Vous pouvez mesurer ce débit dépassé en surveillant la métrique WriteProvisionedThroughputExceeded Kinesis. Pour plus d'informations et des solutions possibles, consultez Comment résoudre les erreurs de régulation dans Kinesis Data Streams ? .

  • Avec les flux QLDB, vous pouvez créer un flux indéfini dont la date et l'heure de début sont anciennes et sans date ni heure de fin. De par sa conception, QLDB ne commence à émettre des données nouvellement validées vers Kinesis Data Streams qu'une fois que toutes les données antérieures à la date et à l'heure de début spécifiées ont été transmises avec succès. Si vous constatez une latence supplémentaire dans ce scénario, vous devrez peut-être attendre que les données précédentes soient livrées, ou vous pouvez démarrer le flux à une date et une heure de début ultérieures.

Commencer à utiliser les streams

Vous trouverez ci-dessous une présentation détaillée des étapes nécessaires pour commencer à diffuser des données de journal vers Kinesis Data Streams :

  1. Créez une ressource Kinesis Data Streams. Pour obtenir des instructions, consultez la section Création et mise à jour de flux de données dans le manuel Amazon Kinesis Data Streams Developer Guide.

  2. Créez un rôle IAM qui permet à QLDB d'assumer des autorisations d'écriture pour le flux de données Kinesis. Pour obtenir des instructions, veuillez consulter Autorisations de diffusion dans QLDB.

  3. Créez un flux de journal QLDB. Pour obtenir des instructions, veuillez consulter Création et gestion de flux dans QLDB.

  4. Consommez le flux de données Kinesis, comme décrit dans la section précédente. Consommation de votre stream Pour des exemples de code illustrant l'utilisation de la bibliothèque cliente Kinesis AWS Lambda, voir. Développement avec des flux dans QLDB