View a markdown version of this page

Modifica i flussi di acquisizione dei dati - Amazon Aurora DSQL

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à.

Modifica i flussi di acquisizione dei dati

Per informazioni sui prezzi, consulta la pagina dei prezzi di Aurora DSQL.

Amazon Aurora DSQL Change Data Capture (CDC) trasmette le modifiche effettuate al database quasi in tempo reale direttamente su Amazon Kinesis Data Streams. Aurora DSQL fornisce lo stato finale di commit di ogni riga modificata come record JSON strutturato a un flusso di dati Kinesis configurato dall'utente.

CDC è utile quando vuoi:

  • Mantieni sincronizzati i sistemi downstream: replica le modifiche su un indice di ricerca, una cache, un data warehouse o un sistema di analisi senza processi in batch.

  • Crea architetture basate sugli eventi: attiva flussi di lavoro, notifiche o azioni di microservizi in risposta alle modifiche del database.

  • Mantieni una traccia di controllo: acquisisci l'effetto netto di ogni transazione per la conformità, il debug o l'analisi storica.

  • Separa i produttori dai consumatori: lascia che il database si concentri sulle transazioni, mentre i sistemi a valle elaborano le modifiche al proprio ritmo.

Come funziona

Aurora DSQL legge le transazioni confermate, formatta la modifica netta a livello di riga come record JSON strutturato e la invia a un flusso di dati Kinesis configurato dall'utente. CDC acquisisce automaticamente l'effetto del commit di tutte le tabelle utente del cluster e su tutte INSERT le tabelle utenteUPDATE. DELETE Applica la logica di filtraggio nelle tue app downstream utilizzando i source.table campi source.schema e di ogni record CDC per concentrarti sulle tabelle o sulle modifiche necessarie all'app.

Aurora DSQL compatta il set di scrittura di ogni transazione prima di pubblicare i record CDC ed emette un singolo record per ogni riga con una modifica netta, che riflette lo stato finale. Per informazioni dettagliate, vedi Write-set compattazione.

Gli stream CDC sono completamente gestiti. Aurora DSQL gestisce tutta l'infrastruttura necessaria per acquisire gli eventi di modifica, monitora lo stato del flusso e riporta lo stato tramite le operazioni e le metriche dell'GetStreamAPI. CloudWatch

Gli stream CDC utilizzano un modello bring-your-own-target. Crei e gestisci il flusso di dati Kinesis nel tuo account e Aurora DSQL assume un ruolo IAM che configuri per scrivere record CDC per tuo conto. Sei responsabile della capacità, della crittografia e delle impostazioni di conservazione dell'obiettivo. Per gli ultimi obiettivi supportati, consulta il TargetDefinition parametro CreateStreamin Amazon Aurora DSQL API Reference. Per un elenco completo delle operazioni delle API di flusso CDC, consulta Amazon Aurora DSQL API Reference.

Argomenti in questa pagina

Semantica di ordinazione e consegna

Garanzie di consegna

Aurora DSQL produce un record CDC per ogni riga con una variazione netta al momento del commit. Per informazioni dettagliate su come Aurora DSQL compatta più operazioni sulla stessa riga, vedere. Write-set compattazione

Aurora DSQL garantisce la consegna almeno una volta per ogni record prodotto. Aurora DSQL è in grado di fornire lo stesso record più di una volta, quindi progetta la tua app in modo da gestire i duplicati. È possibile identificare un duplicato source.ts_ns confrontando i valori della chiave primaria: un duplicato ha gli stessi valori della distribuzione originale.

Ordinazione

Modalità di utilizzo degli stream CDC. UNORDERED In pratica, i record arrivano in ordine di commit approssimativo perché Aurora DSQL legge e pubblica le modifiche in sequenza. Tuttavia, Aurora DSQL non garantisce un ordinamento rigoroso. Nello specifico:

  • Aurora DSQL è in grado di fornire record di transazioni diverse in qualsiasi ordine.

  • I record per la stessa chiave primaria di transazioni diverse possono provenire dall'ordine di committenza.

  • I record di una singola transazione possono interlacciarsi con i record di altre transazioni. Utilizza il source.txId campo per raggruppare i record per transazione quando il flusso di lavoro lo richiede.

Ogni record CDC include un source.ts_ns campo che contiene il timestamp di conferma della transazione in nanosecondi. Utilizzate questo campo per stabilire l'ordine di commit sul lato ricevente.

Strategie di consumo

Poiché i record possono provenire dall'ordine di conferma e apparire più di una volta, l'app deve tenere conto di entrambe le condizioni.

Importante

Definisci una chiave primaria su tutte le tabelle che partecipano a CDC. Senza una chiave primaria, l'app non può deduplicare i record o correlare le eliminazioni alla riga interessata.

Last-writer-wins (viste materializzate, cache)

Tieni traccia del source.ts_ns valore più alto per chiave primaria. Elimina qualsiasi record con un valore source.ts_ns inferiore o uguale al valore tracciato. Questo filtra sia i record duplicati che quelli non ordinati, mantenendo lo stato più recente di ogni chiave. Quando elaborate un delete (op: "d"), memorizzate una lapide per la chiave primaria che preservi il valore invece di rimuovere la source.ts_ns voce. La lapide assicura che un inserimento o un aggiornamento con una precedente source.ts_ns che arriva dopo l'eliminazione non ripristini erroneamente la riga.

Every-change elaborazione (registrazione degli audit, approvvigionamento degli eventi)

Rimuovi i duplicati confrontandoli con i source.ts_ns valori della chiave primaria. Memorizza nel buffer i record in entrata e ordinali source.ts_ns prima dell'elaborazione per ricostruire l'ordine di commit. CDC fornisce solo lo stato finale di ogni riga per transazione confermata (dopo). Write-set compattazione Se il flusso di lavoro di controllo richiede un record per ogni istruzione SQL, esegui ogni istruzione nella relativa transazione.

Multi-Region Configurazione dello stream CDC

Uno stream CDC è una risorsa regionale. Ogni flusso appartiene a una singola AWS regione e fornisce modifiche a un flusso di dati Kinesis nella stessa regione. In un cluster multiregionale, uno stream CDC in una regione qualsiasi acquisisce le scritture effettuate da tutte le regioni del cluster. Ciò significa che è sufficiente un solo stream per acquisire ogni modifica, indipendentemente dall'origine della scrittura. Per distribuire i record CDC in più di una regione, crea uno stream separato in ciascuna regione. Ogni stream acquisisce in modo indipendente l'intero set di modifiche confermate nel cluster.

Tutte le risorse, il cluster Aurora DSQL, il flusso di dati Kinesis, il ruolo del servizio IAM e il calling principal, devono trovarsi nello stesso account e nella stessa regione. AWS

Elaborazione dei record CDC a valle

Una volta che i record CDC sono arrivati nel flusso di dati Kinesis, è possibile elaborarli direttamente o indirizzarli verso altre destinazioni AWS utilizzando i servizi di integrazione. La tabella seguente riassume i modelli di elaborazione più comuni.

Modelli di elaborazione comuni per i record CDC
Pattern Come funziona
Consumo diretto Leggi i record di Kinesis utilizzando Amazon Kinesis Client Library (KCL), AWS l'SDK o un consumer Kinesis Data Streams. Consulta la sezione Sviluppo di consumatori KCL nella Amazon Kinesis Data Streams Developer Guide.
AWS Lambda Configura una funzione Lambda come fonte di eventi per il flusso di dati Kinesis per elaborare ogni batch di record CDC non appena arrivano. Vedi Uso di AWS Lambda con Amazon Kinesis nella AWS Lambda Developer Guide.
Amazon Data Firehose Distribuisci i record CDC da Kinesis ad Amazon S3, Amazon Redshift OpenSearch, Amazon Service o altre destinazioni per l'analisi e l'archiviazione. Vedi Invio di dati a un flusso di distribuzione nella Amazon Data Firehose Developer Guide.
Self-managed consumatori Esegui Apache Kafka Connect con il connettore sorgente Kinesis, Apache Flink o altri framework di elaborazione dei flussi per trasformare e indirizzare i record. Per Apache Flink attivo AWS, consulta Configurazione dell'input dell'app nella Amazon Managed Service for Apache Flink Developer Guide.

Ogni record CDC include campi come source.schemasource.table, e op che puoi utilizzare per indirizzare e filtrare i record nella tua logica di elaborazione. Per lo schema completo dei record, vedereComprensione dei record CDC.