Sviluppo con stream in QLDB - Database Amazon Quantum Ledger (Amazon QLDB)

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Sviluppo con stream in QLDB

Questa sezione riassume le operazioni API che puoi utilizzare con un AWS SDK o AWS CLI per creare e gestire flussi di journal in Amazon QLDB. Descrive inoltre le applicazioni di esempio che dimostrano queste operazioni e utilizzano la Kinesis Client Library (KCL) o AWS Lambda per implementare uno stream consumer.

Puoi utilizzare KCL per creare applicazioni consumer per Amazon Kinesis Data Streams. KCL semplifica la codifica fornendo astrazioni utili sull'API Kinesis Data Streams di basso livello. Per ulteriori informazioni su KCL, consulta Using the Kinesis Client Library nella Amazon Kinesis Data Streams Developer Guide.

API QLDB Journal Stream

L'API QLDB fornisce le seguenti operazioni di flusso del diario per l'utilizzo da parte dei programmi applicativi:

  • StreamJournalToKinesis— Crea un flusso di journal per un determinato registro QLDB. Lo stream acquisisce ogni revisione del documento inserita nel diario del registro e invia i dati a una risorsa Kinesis Data Streams specificata.

    • L'aggregazione dei record in Kinesis Data Streams è abilitata per impostazione predefinita. Questa opzione consente a QLDB di pubblicare più record di dati in un singolo record Kinesis Data Streams, aumentando il numero di record inviati per chiamata API.

      L'aggregazione dei record ha importanti implicazioni per l'elaborazione dei record e richiede la disaggregazione nello stream consumer. Per ulteriori informazioni, consulta i concetti chiave di KPL e la deaggregazione dei consumatori nella Amazon Kinesis Data Streams Developer Guide.

  • DescribeJournalKinesisStream— Restituisce informazioni dettagliate su un determinato flusso di journal QLDB. L'output include l'ARN, il nome dello stream, lo stato corrente, l'ora di creazione e i parametri della richiesta di creazione dello stream originale.

  • ListJournalKinesisStreamsForLedger— Restituisce un elenco di tutti i descrittori di stream del journal QLDB per un determinato registro. L'output di ogni descrittore di flusso include gli stessi dettagli restituiti da. DescribeJournalKinesisStream

  • CancelJournalKinesisStream— Termina un determinato flusso di journal QLDB. Prima che uno stream possa essere annullato, deve essere il suo stato attuale. ACTIVE

    Non puoi riavviare uno stream dopo averlo annullato. Per riprendere la consegna dei dati a Kinesis Data Streams, puoi creare un nuovo flusso QLDB.

Per una descrizione completa di queste operazioni API, consulta la. Documentazione di riferimento dell'API Amazon QLDB

Per informazioni sulla creazione e la gestione di stream di journal utilizzando AWS CLI, vedere il AWS CLI Command Reference.

Applicazioni di esempio

QLDB fornisce applicazioni di esempio che dimostrano varie operazioni utilizzando stream di journal. Queste applicazioni sono open source sul sito Samples.AWS GitHub

Operazioni di base (Java)

Per un esempio di codice Java che dimostra le operazioni di base per i flussi di journal QLDB, consulta il repository aws-samples/ -java. GitHub amazon-qldb-dmv-sample Per istruzioni su come scaricare e installare questa applicazione di esempio, consulta. Installazione dell'applicazione di esempio Java Amazon QLDB

Nota

Dopo aver installato l'applicazione, non procedete al passaggio 1 del tutorial su Java per creare un libro mastro. Questa applicazione di esempio per lo streaming crea il vehicle-registration registro per te.

Questa applicazione di esempio racchiude il codice sorgente completo di Tutorial su Java e le relative dipendenze, inclusi i seguenti moduli:

  • AWS SDK for Java— Per creare ed eliminare le risorse QLDB e Kinesis Data Streams, inclusi i registri, i flussi di journal QLDB e i flussi di dati Kinesis.

  • Driver Amazon QLDB per Java— Per eseguire transazioni di dati su un registro utilizzando istruzioni PartiQl, inclusa la creazione di tabelle e l'inserimento di documenti.

  • Kinesis Client Library: per utilizzare ed elaborare i dati da un flusso di dati Kinesis.

Esecuzione del codice

La StreamJournalclasse contiene codice tutorial che illustra le seguenti operazioni:

  1. Crea un registro denominatovehicle-registration, crea tabelle e caricale con dati di esempio.

    Nota

    Prima di eseguire questo codice, assicurati di non avere già un registro attivo denominato. vehicle-registration

  2. Crea un flusso di dati Kinesis, un ruolo IAM che consente a QLDB di assumere le autorizzazioni di scrittura per il flusso di dati Kinesis e un flusso di journal QLDB.

  3. Usa KCL per avviare un lettore di stream che elabora il flusso di dati Kinesis e registra ogni record di dati QLDB.

  4. Usa i dati del flusso per convalidare la catena hash del registro di esempio. vehicle-registration

  5. Pulisci tutte le risorse interrompendo lo stream reader, annullando lo stream del journal QLDB, eliminando il registro ed eliminando il flusso di dati Kinesis.

Per eseguire il codice del StreamJournal tutorial, inserisci il seguente comando Gradle dalla directory principale del tuo progetto.

./gradlew run -Dtutorial=streams.StreamJournal

Integrazione con OpenSearch Service (Python)

Per un'applicazione di esempio in Python che dimostra come integrare un flusso QLDB con Amazon OpenSearch Service, consulta il repository aws-samples/ -. GitHub amazon-qldb-streaming-amazon opensearch-service-sample-python Questa applicazione utilizza una AWS Lambda funzione per implementare un consumatore Kinesis Data Streams.

Per clonare il repository, inserisci il seguente comando. git

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

Per eseguire l'applicazione di esempio, consultate il file README su GitHub per le istruzioni.

Integrazione con Amazon SNS e Amazon SQS (Python)

Per un'applicazione di esempio in Python che dimostra come integrare uno stream QLDB con Amazon Simple Notification Service (Amazon SNS), consulta il repository aws-samples/ -. GitHub amazon-qldb-streams-dmv sample-lambda-python

Questa applicazione utilizza una AWS Lambda funzione per implementare un consumatore Kinesis Data Streams. Invia messaggi a un argomento Amazon SNS a cui è associata una coda Amazon Simple Queue Service (Amazon SQS).

Per clonare il repository, inserisci il seguente comando. git

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

Per eseguire l'applicazione di esempio, consultate il file README su GitHub per le istruzioni.