Entwickeln mit Streams in QLDB - Amazon Quantum Ledger-Datenbank (AmazonQLDB)

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Entwickeln mit Streams in QLDB

Wichtig

Hinweis zum Ende des Supports: Bestandskunden können Amazon QLDB bis zum Ende des Supports am 31.07.2025 nutzen. Weitere Informationen finden Sie unter Migrieren eines Amazon QLDB Ledgers zu Amazon Aurora SQL Postgre.

In diesem Abschnitt werden die API Operationen zusammengefasst, die Sie mit einem verwenden können AWS SDKoder das AWS CLI um Journal-Streams in Amazon zu erstellen und zu verwaltenQLDB. Außerdem werden die Beispielanwendungen beschrieben, die diese Operationen demonstrieren und die Kinesis Client Library (KCL) verwenden oder AWS Lambda um einen Stream-Consumer zu implementieren.

Sie können das verwendenKCL, um Verbraucheranwendungen für Amazon Kinesis Data Streams zu erstellen. Das KCL vereinfacht die Codierung, indem es nützliche Abstraktionen über den Kinesis Data Streams auf niedriger Ebene bereitstellt. API Weitere Informationen zu finden Sie unter KCL Using the Kinesis Client Library im Amazon Kinesis Data Streams Developer Guide.

QLDBJournal-Stream APIs

Der QLDB API stellt die folgenden Journal-Stream-Operationen zur Verwendung durch Anwendungsprogramme bereit:

  • StreamJournalToKinesis— Erzeugt einen Journal-Stream für ein bestimmtes QLDB Ledger. Der Stream erfasst jede Dokumentrevision, die in das Journal des Ledgers übernommen wird, und übermittelt die Daten an eine angegebene Kinesis Data Streams Streams-Ressource.

    • Die Datensatzaggregation in Kinesis Data Streams ist standardmäßig aktiviert. Mit dieser Option können mehrere Datensätze in einem einzigen Kinesis Data Streams Streams-Datensatz QLDB veröffentlicht werden, wodurch die Anzahl der pro API Anruf gesendeten Datensätze erhöht wird.

      Die Datensatzaggregation hat wichtige Auswirkungen auf die Verarbeitung von Datensätzen und erfordert eine Deaggregation in Ihrem Stream-Consumer. Weitere Informationen finden Sie unter KPLSchlüsselkonzepte und Deaggregation für Verbraucher im Amazon Kinesis Data Streams Developer Guide.

  • DescribeJournalKinesisStream— Gibt detaillierte Informationen zu einem bestimmten QLDB Journal-Stream zurück. Die Ausgabe umfasst den ARN Stream-Namen, den aktuellen Status, die Erstellungszeit und die Parameter Ihrer ursprünglichen Anfrage zur Stream-Erstellung.

  • ListJournalKinesisStreamsForLedger— Gibt eine Liste aller QLDB Journal-Stream-Deskriptoren für ein bestimmtes Ledger zurück. Die Ausgabe jedes Stream-Deskriptors enthält die gleichen Details, die von DescribeJournalKinesisStream zurückgegeben werden.

  • CancelJournalKinesisStream— Beendet einen bestimmten Journal-StreamQLDB. Bevor ein Stream abgebrochen werden kann, muss sein aktueller Status „ACTIVE“ lauten.

    Sie können einen Stream nicht neu starten, nachdem Sie ihn abgebrochen haben. Um die Übertragung Ihrer Daten an Kinesis Data Streams fortzusetzen, können Sie einen neuen QLDB Stream erstellen.

Eine vollständige Beschreibung dieser API Vorgänge finden Sie imQLDBAPIAmazon-Referenz.

Informationen zum Erstellen und Verwalten von Journal-Streams mit dem AWS CLI, siehe AWS CLI Befehlsreferenz.

Beispielanwendungen

QLDBbietet Beispielanwendungen, die verschiedene Operationen mithilfe von Journal-Streams demonstrieren. Diese Anwendungen sind Open Source auf der AWS GitHub Beispielseite.

Grundlegende Operationen (Java)

Ein Java-Codebeispiel, das grundlegende Operationen für QLDB Journal-Streams demonstriert, finden Sie im GitHub Repository amazon-qldb-dmv-sampleaws-samples/ -java. Anweisungen zum Herunterladen und Installieren dieser Beispielanwendung finden Sie unter Installation der Amazon QLDB Java-Beispielanwendung.

Anmerkung

Fahren Sie nach der Installation der Anwendung nicht mit Schritt 1 des Java-Tutorials fort, um ein Ledger zu erstellen. Diese Beispielanwendung für Streaming erstellt das vehicle-registration-Ledger für Sie.

Diese Beispielanwendung packt den kompletten Quellcode von Java-Lernprogramm und seinen Abhängigkeiten, einschließlich der folgenden Module:

  • AWS SDK for Java— Um sowohl die als auch die Kinesis Data Streams Streams-Ressourcen zu erstellen QLDB und zu löschen, einschließlich Ledger, QLDB Journal-Streams und Kinesis-Datenstreams.

  • QLDBAmazon-Treiber für Java— Um Datentransaktionen in einem Ledger mithilfe von PartiQL-Anweisungen auszuführen, einschließlich der Erstellung von Tabellen und des Einfügens von Dokumenten.

  • Kinesis Client Library — Um Daten aus einem Kinesis-Datenstrom zu nutzen und zu verarbeiten.

Ausführen des Codes

Die StreamJournalKlasse enthält Tutorial-Code, der die folgenden Operationen demonstriert:

  1. Erstellen Sie ein Ledger mit dem Namen „vehicle-registration“, erstellen Sie Tabellen, und laden Sie sie mit Beispieldaten.

    Anmerkung

    Bevor Sie diesen Code ausführen, stellen Sie sicher, dass noch kein aktives Ledger mit dem Namen „vehicle-registration“ vorhanden ist.

  2. Erstellen Sie einen Kinesis-Datenstream, eine IAM Rolle, die es ermöglicht, Schreibberechtigungen für den Kinesis-Datenstream QLDB zu übernehmen, und einen QLDB Journal-Stream.

  3. Verwenden Sie denKCL, um einen Stream-Reader zu starten, der den Kinesis-Datenstream verarbeitet und jeden QLDB Datensatz protokolliert.

  4. Verwenden Sie die Stream-Daten, um die Hashkette des vehicle-registration-Beispiel-Ledgers zu überprüfen.

  5. Bereinigen Sie alle Ressourcen, indem Sie den Stream-Reader beenden, den QLDB Journal-Stream abbrechen, das Ledger löschen und den Kinesis-Datenstream löschen.

Um den StreamJournal-Tutorial-Code auszuführen, geben Sie den folgenden Gradle-Befehl aus Ihrem Projekt-Stammverzeichnis ein.

./gradlew run -Dtutorial=streams.StreamJournal

Integration mit OpenSearch Service (Python)

Eine Python-Beispielanwendung, die demonstriert, wie ein QLDB Stream in Amazon OpenSearch Service integriert wird, finden Sie im GitHub Repository amazon-qldb-streaming-amazonaws-samples/ -. opensearch-service-sample-python Diese Anwendung verwendet eine AWS Lambda Funktion zur Implementierung eines Kinesis Data Streams Streams-Consumers.

Geben Sie den folgenden git-Befehl ein, um das Repository zu klonen.

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

Anweisungen zum Ausführen der Beispielanwendung finden Sie unter READMEon GitHub .

Integration mit Amazon SNS und Amazon SQS (Python)

Eine Python-Beispielanwendung, die demonstriert, wie ein QLDB Stream mit Amazon Simple Notification Service (AmazonSNS) integriert wird, finden Sie im GitHub Repository amazon-qldb-streams-dmvaws-samples/ -. sample-lambda-python

Diese Anwendung verwendet eine AWS Lambda Funktion zur Implementierung eines Kinesis Data Streams Streams-Consumers. Es sendet Nachrichten an ein SNS Amazon-Thema, das von einer Amazon Simple Queue Service (AmazonSQS) -Warteschlange abonniert wurde.

Geben Sie den folgenden git-Befehl ein, um das Repository zu klonen.

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

Anweisungen zum Ausführen der Beispielanwendung finden Sie unter. README GitHub