View a markdown version of this page

Modifica i flussi di acquisizione dati (anteprima) - 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 dati (anteprima)

Importante

Questa funzionalità viene fornita come anteprima ed è soggetta a modifiche AWS . Per ulteriori informazioni, consulta la sezione 2, Beta e anteprime, nei Termini di AWS servizio. Per ulteriori informazioni sui prezzi degli stream CDC, consulta la pagina dei prezzi di Aurora DSQL.

Prima della disponibilità generale, aggiungeremo nuovi tipi di operazioni ("op": "u"per gli aggiornamenti) al payload dello stream. Per garantire che l'applicazione gestisca queste modifiche senza modifiche, considera qualsiasi op valore non riconosciuto come un problema, applicando il payload. after Per informazioni dettagliate, vedi Comprensione dei record CDC.

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 ogni modifica a livello di riga impegnata 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 ogni modifica importante 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 ogni modifica di riga come record JSON strutturato e la invia a un flusso di dati Kinesis configurato dall'utente. CDC acquisisce automaticamente tutte le tabelle utente del cluster e DELETE su tutte INSERT le altre. UPDATE Applica la logica di filtraggio nelle app downstream utilizzando i source.table campi source.schema e di ogni record CDC per concentrarti sulle tabelle o sulle modifiche necessarie all'app.

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 CDC garantisce che ogni modifica confermata raggiunga l'obiettivo almeno una volta. Aurora DSQL può fornire un record più di una volta. Progetta la tua app per gestire i duplicati. Puoi identificare un duplicato confrontando source.ts_ns 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 preserva 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.

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

Dopo l'arrivo dei record CDC 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.