View a markdown version of this page

Datenerfassungsstreams ändern (Vorschau) - Amazon Aurora DSQL

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.

Datenerfassungsstreams ändern (Vorschau)

Wichtig

Diese Funktion wird als AWS Vorversion bereitgestellt und kann sich ändern. Weitere Informationen finden Sie in Abschnitt 2, Betas und Vorschauen, in den AWS Servicebedingungen. Weitere Informationen zu den Preisen für CDC-Streams finden Sie auf der Aurora DSQL-Preisseite.

Vor der allgemeinen Verfügbarkeit werden wir Ihrer Stream-Payload neue Operationstypen ("op": "u"für Updates) hinzufügen. Um sicherzustellen, dass Ihre Anwendung diese Änderungen unverändert verarbeitet, behandeln Sie jeden unbekannten op Wert als Fehler, indem Sie die Payload übernehmen. after Details dazu finden Sie unter CDC-Datensätze verstehen.

Amazon Aurora DSQL Change Data Capture (CDC) streamt festgeschriebene Datenbankänderungen nahezu in Echtzeit direkt an Amazon Kinesis Data Streams. Aurora DSQL übermittelt jede festgeschriebene Änderung auf Zeilenebene als strukturierten JSON-Datensatz an einen Kinesis-Datenstream, den Sie konfigurieren.

CDC ist nützlich, wenn Sie:

  • Synchronisieren nachgelagerter Systeme — Replizieren Sie Änderungen an einem Suchindex, Cache, Data Warehouse oder Analysesystem ohne Batch-Jobs.

  • Erstellen Sie ereignisgesteuerte Architekturen — lösen Sie Workflows, Benachrichtigungen oder Microservice-Aktionen als Reaktion auf Datenbankänderungen aus.

  • Führen Sie einen Prüfpfad — Erfassen Sie jede festgeschriebene Änderung zur Einhaltung von Vorschriften, zum Debuggen oder zur historischen Analyse.

  • Entkoppeln Sie Produzenten von Verbrauchern — Sorgen Sie dafür, dass sich die Datenbank auf Transaktionen konzentriert, während nachgelagerte Systeme Änderungen in ihrem eigenen Tempo verarbeiten.

Funktionsweise

Aurora DSQL liest festgeschriebene Transaktionen, formatiert jede Zeilenänderung als strukturierten JSON-Datensatz und übermittelt sie an einen von Ihnen konfigurierten Kinesis-Datenstream. CDC erfasst automatisch alle INSERT UPDATE Benutzertabellen und alle DELETE Benutzertabellen im Cluster. Wenden Sie die Filterlogik in Ihren Downstream-Apps an, indem Sie die source.table Felder source.schema und in jedem CDC-Datensatz verwenden, um sich auf die Tabellen zu konzentrieren oder Ihre App-Anforderungen zu ändern.

CDC-Streams werden vollständig verwaltet. Aurora DSQL verwaltet die gesamte Infrastruktur, die zur Erfassung von Änderungsereignissen erforderlich ist, überwacht den Zustand des Streams und meldet den Status anhand des GetStream API-Betriebs und der CloudWatch Metriken.

CDC-Streams verwenden ein Bring-Your-Own-Target-Modell. Sie erstellen und verwalten den Kinesis-Datenstream in Ihrem Konto, und Aurora DSQL übernimmt eine IAM-Rolle, die Sie so konfigurieren, dass sie CDC-Datensätze in Ihrem Namen schreibt. Sie sind für die Kapazitäts-, Verschlüsselungs- und Aufbewahrungseinstellungen des Ziels verantwortlich. Die neuesten unterstützten Ziele finden Sie unter dem TargetDefinition Parameter CreateStreamin der Amazon Aurora DSQL API-Referenz. Eine vollständige Liste der CDC-Stream-API-Operationen finden Sie in der Amazon Aurora DSQL API-Referenz.

Themen auf dieser Seite

Semantik von Bestellung und Lieferung

Liefergarantien

Aurora DSQL CDC garantiert, dass jede festgeschriebene Änderung das Ziel mindestens einmal erreicht. Aurora DSQL kann einen Datensatz mehr als einmal liefern. Entwerfen Sie Ihre App so, dass sie Duplikate verarbeitet. Sie können ein Duplikat identifizieren, indem Sie die Primärschlüsselwerte miteinander vergleichen source.ts_ns — ein Duplikat hat dieselben Werte wie die ursprüngliche Lieferung.

Bestellung

CDC-Streams verwenden den UNORDERED Modus. In der Praxis kommen die Datensätze in ungefährer Reihenfolge beim Festschreiben an, da Aurora DSQL Änderungen sequentiell liest und veröffentlicht. Aurora DSQL garantiert jedoch keine strikte Reihenfolge. Das heißt:

  • Aurora DSQL kann Datensätze aus verschiedenen Transaktionen in beliebiger Reihenfolge liefern.

  • Datensätze für denselben Primärschlüssel aus verschiedenen Transaktionen können nicht in der Reihenfolge der Commits eingehen.

  • Datensätze aus einer einzelnen Transaktion können sich mit Datensätzen aus anderen Transaktionen verschachteln. Verwenden Sie das source.txId Feld, um Datensätze nach Transaktionen zu gruppieren, wenn Ihr Workflow dies erfordert.

Jeder CDC-Datensatz enthält ein source.ts_ns Feld, das den Zeitstempel des Transaktions-Commits in Nanosekunden enthält. Verwenden Sie dieses Feld, um die Commit-Reihenfolge auf der Empfangsseite festzulegen.

Strategien für Verbraucher

Da Datensätze in der Reihenfolge, in der sie gespeichert wurden, eingehen und mehrfach erscheinen können, muss Ihre App beide Bedingungen berücksichtigen.

Wichtig

Definieren Sie einen Primärschlüssel für alle Tabellen, die am CDC teilnehmen. Ohne einen Primärschlüssel kann Ihre App keine Datensätze deduplizieren oder Löschungen mit der betroffenen Zeile korrelieren.

Last-writer-wins (materialisierte Ansichten, Caches)

Verfolgen Sie den höchsten source.ts_ns Wert pro Primärschlüssel. Verwerfen Sie alle Datensätze, deren Wert source.ts_ns kleiner oder gleich dem verfolgten Wert ist. Dadurch werden sowohl Duplikate als auch Datensätze, die nicht in der richtigen Reihenfolge sind, gefiltert, wobei der neueste Status für jeden Schlüssel beibehalten wird. Wenn Sie einen Delete (op: "d") -Befehl verarbeiten, speichern Sie einen Tombstone für den Primärschlüssel, der den source.ts_ns Wert beibehält, anstatt den Eintrag zu entfernen. Der Tombstone stellt sicher, dass bei einer Einfügung oder Aktualisierung mit einem früheren Elementsource.ts_ns, das nach dem Löschen eingeht, die Zeile nicht fälschlicherweise wiederhergestellt wird.

Every-change Verarbeitung (Auditprotokollierung, Erfassung von Ereignissen)

Entfernen Sie Duplikate, indem Sie sie source.ts_ns zusammen mit den Primärschlüsselwerten vergleichen. Puffern Sie eingehende Datensätze und sortieren Sie source.ts_ns sie vor der Verarbeitung nach, um die Reihenfolge der Commits zu rekonstruieren.

Multi-Region CDC-Stream-Konfiguration

Ein CDC-Stream ist eine regionale Ressource. Jeder Stream gehört zu einer einzelnen AWS Region und liefert Änderungen an einem Kinesis-Datenstream in derselben Region. In einem Cluster mit mehreren Regionen erfasst ein CDC-Stream in einer beliebigen Region festgeschriebene Schreibvorgänge aus allen Regionen im Cluster. Das bedeutet, dass Sie nur einen Stream benötigen, um jede Änderung zu erfassen, unabhängig davon, woher der Schreibvorgang stammt. Um CDC-Datensätze in mehr als einer Region bereitzustellen, erstellen Sie in jeder Region einen separaten Stream. Jeder Stream erfasst unabhängig den gesamten Satz der festgeschriebenen Änderungen im gesamten Cluster.

Alle Ressourcen — der Aurora DSQL-Cluster, der Kinesis-Datenstream, die IAM-Servicerolle und der aufrufende Principal — müssen sich im selben Konto und in derselben Region befinden. AWS

Downstream-Verarbeitung von CDC-Datensätzen

Nachdem CDC-Datensätze in Ihrem Kinesis-Datenstrom eingegangen sind, können Sie sie direkt verarbeiten oder mithilfe von AWS Integrationsdiensten an andere Ziele weiterleiten. In der folgenden Tabelle sind gängige Verarbeitungsmuster zusammengefasst.

Allgemeine Verarbeitungsmuster für CDC-Datensätze
Muster Funktionsweise
Direkter Verbrauch Lesen Sie Datensätze aus Kinesis mithilfe der Amazon Kinesis Client Library (KCL), des AWS SDK oder eines Kinesis Data Streams Streams-Consumer. Weitere Informationen finden Sie unter Entwickeln von KCL-Verbrauchern im Amazon Kinesis Data Streams Developer Guide.
AWS Lambda Konfigurieren Sie eine Lambda-Funktion als Ereignisquelle für Ihren Kinesis-Datenstrom, um jeden Batch von CDC-Datensätzen zu verarbeiten, sobald er eingeht. Weitere Informationen finden Sie unter Verwenden von AWS Lambda mit Amazon Kinesis im AWS Lambda Developer Guide.
Amazon Data Firehose Senden Sie CDC-Datensätze von Kinesis an Amazon S3, Amazon Redshift, Amazon OpenSearch Service oder andere Ziele zur Analyse und Archivierung. Weitere Informationen finden Sie unter Senden von Daten an einen Lieferstream im Amazon Data Firehose Developer Guide.
Self-managed Verbraucher Führen Sie Apache Kafka Connect mit dem Kinesis Source Connector, Apache Flink oder anderen Frameworks zur Stream-Verarbeitung aus, um Datensätze zu transformieren und weiterzuleiten. Informationen zur Aktivierung von Apache Flink finden Sie unter Konfiguration der App-Eingabe im Amazon Managed Service for Apache Flink Developer Guide. AWS

Jeder CDC-Datensatz enthält Felder wiesource.schema, und op die Sie verwenden könnensource.table, um Datensätze in Ihrer Verarbeitungslogik weiterzuleiten und zu filtern. Das vollständige Datensatzschema finden Sie unterCDC-Datensätze verstehen.