Streaming dei dati del diario da Amazon 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à.

Streaming dei dati del diario da Amazon QLDB

Amazon QLDB utilizza un log transazionale immutabile, noto come journal, per l'archiviazione dei dati. Il diario tiene traccia di ogni modifica ai dati impegnati e mantiene una cronologia completa e verificabile delle modifiche nel tempo.

Puoi creare uno stream in QLDB che acquisisce ogni revisione del documento inserita nel tuo diario e invia questi dati ad Amazon Kinesis Data Streams quasi in tempo reale. Un flusso QLDB è un flusso continuo di dati dal diario del registro a una risorsa del flusso di dati Kinesis.

Quindi, utilizzi la piattaforma di streaming Kinesis o la Kinesis Client Library per consumare lo streaming, elaborare i record di dati e analizzare il contenuto dei dati. Uno stream QLDB scrive i dati su Kinesis Data Streams in tre tipi di record: controllo, riepilogo dei blocchi e dettagli di revisione. Per ulteriori informazioni, consulta Record di stream QLDB in Kinesis.

Casi di utilizzo comune

Lo streaming ti consente di utilizzare QLDB come un'unica fonte di verità verificabile, integrando al contempo i dati del tuo diario con altri servizi. Di seguito sono riportati alcuni dei casi d'uso più comuni supportati dai flussi di journal QLDB:

  • Architettura basata sugli eventi: crea applicazioni in uno stile architettonico basato sugli eventi con componenti disaccoppiati. Ad esempio, una banca può utilizzare AWS Lambda le funzioni per implementare un sistema di notifica che avvisa i clienti quando il saldo del conto scende al di sotto di una soglia. In un sistema di questo tipo, i saldi dei conti vengono conservati in un registro QLDB e tutte le modifiche al saldo vengono registrate nel giornale di registrazione. La AWS Lambda funzione può attivare la logica di notifica quando si consuma un evento di aggiornamento del saldo che viene salvato nel journal e inviato a un flusso di dati Kinesis.

  • Analisi in tempo reale: crea applicazioni Kinesis consumer che eseguono analisi in tempo reale sui dati degli eventi. Con questa funzionalità, puoi ottenere informazioni dettagliate quasi in tempo reale e rispondere rapidamente a un ambiente aziendale in evoluzione. Ad esempio, un sito di e-commerce può analizzare i dati di vendita dei prodotti e interrompere la pubblicità di un prodotto scontato non appena le vendite raggiungono un limite.

  • Analisi storica: sfrutta l'architettura orientata al journal di Amazon QLDB riproducendo i dati storici degli eventi. Puoi scegliere di avviare uno stream QLDB in qualsiasi momento del passato, in cui tutte le revisioni successive a quel momento vengono consegnate a Kinesis Data Streams. Utilizzando questa funzionalità, puoi creare applicazioni consumer Kinesis che eseguono processi di analisi su dati storici. Ad esempio, un sito di e-commerce può eseguire analisi in base alle esigenze per generare metriche di vendita passate che non erano state acquisite in precedenza.

  • Replica su database creati appositamente: collega i registri QLDB ad altri archivi dati creati appositamente utilizzando flussi di journal QLDB. Ad esempio, utilizza la piattaforma di streaming di dati Kinesis per l'integrazione con Amazon OpenSearch Service, che può fornire funzionalità di ricerca di testo completo per documenti QLDB. Puoi anche creare applicazioni Kinesis consumer personalizzate per replicare i dati del tuo diario su altri database creati appositamente che forniscono diverse viste materializzate. Ad esempio, esegui la replica su Amazon Aurora per dati relazionali o su Amazon Neptune per dati basati su grafici.

Consumo del tuo streaming

Usa Kinesis Data Streams per consumare, elaborare e analizzare continuamente grandi flussi di record di dati. Oltre a Kinesis Data Streams, la piattaforma di streaming dati Kinesis include Amazon Data Firehose e Amazon Managed Service for Apache Flink. Puoi utilizzare questa piattaforma per inviare record di dati direttamente a servizi come Amazon OpenSearch Service, Amazon Redshift, Amazon S3 o Splunk. Per ulteriori informazioni, consulta i consumatori di Kinesis Data Streams nella Amazon Kinesis Data Streams Developer Guide.

Puoi anche utilizzare la Kinesis Client Library (KCL) per creare un'applicazione di streaming consumer per elaborare i record di dati in modo personalizzato. 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.

Garanzia di consegna

Gli stream QLDB offrono una garanzia di consegna. at-least-once Ogni record di dati prodotto da un flusso QLDB viene inviato a Kinesis Data Streams almeno una volta. Gli stessi record possono apparire più volte in un flusso di dati Kinesis. Pertanto, è necessario disporre di una logica di deduplicazione a livello di applicazione consumer se il caso d'uso lo richiede.

Inoltre, non ci sono garanzie di ordinazione. In alcune circostanze, i blocchi e le revisioni QLDB possono essere prodotti in un flusso di dati Kinesis non funzionante. Per ulteriori informazioni, consulta Gestione di duplicati e record out-of-order.

Considerazioni sulla latenza di consegna

Gli stream QLDB in genere forniscono aggiornamenti a Kinesis Data Streams quasi in tempo reale. Tuttavia, i seguenti scenari potrebbero creare una latenza aggiuntiva prima che i nuovi dati QLDB salvati vengano emessi in un flusso di dati Kinesis:

  • Kinesis può limitare i dati trasmessi in streaming da QLDB, a seconda del provisioning di Kinesis Data Streams. Ad esempio, ciò potrebbe verificarsi se sono presenti più flussi QLDB che scrivono su un singolo flusso di dati Kinesis e la frequenza di richiesta di QLDB supera la capacità della risorsa Kinesis stream. La limitazione in Kinesis può verificarsi anche quando si utilizza il provisioning su richiesta se il throughput aumenta fino a più del doppio del picco precedente in meno di 15 minuti.

    Puoi misurare questo throughput superato monitorando la metrica Kinesis. WriteProvisionedThroughputExceeded Per ulteriori informazioni e possibili soluzioni, vedi Come posso risolvere gli errori di limitazione in Kinesis Data Streams? .

  • Con gli stream QLDB, puoi creare uno stream indefinito con data e ora di inizio precedenti e senza data e ora di fine. In base alla progettazione, QLDB inizia a emettere i nuovi dati salvati su Kinesis Data Streams solo dopo che tutti i dati precedenti della data e dell'ora di inizio specificate sono stati consegnati correttamente. Se si percepisce una latenza aggiuntiva in questo scenario, potrebbe essere necessario attendere la consegna dei dati precedenti oppure è possibile avviare lo streaming da una data e un'ora di inizio successive.

Guida introduttiva agli stream

Di seguito è riportata una panoramica di alto livello dei passaggi necessari per iniziare a trasmettere i dati del journal su Kinesis Data Streams:

  1. Crea una risorsa Kinesis Data Streams. Per istruzioni, consulta Creazione e aggiornamento di flussi di dati nella Amazon Kinesis Data Streams Developer Guide.

  2. Crea un ruolo IAM che consenta a QLDB di assumere le autorizzazioni di scrittura per il flusso di dati Kinesis. Per istruzioni, consulta Autorizzazioni di streaming in QLDB.

  3. Crea un flusso di journal QLDB. Per istruzioni, consulta Creazione e gestione di stream in QLDB.

  4. Consuma il flusso di dati Kinesis, come descritto nella sezione precedente. Consumo del tuo streaming Per esempi di codice che mostrano come utilizzare la Kinesis Client Library oppure AWS Lambda, consulta. Sviluppo con stream in QLDB