Was ist CDC?
Change Data Capture (CDC, deutsch: Änderungsdatenerfassung) ist ein bewährtes Muster der Datenintegration. Dabei wird nicht nur nachverfolgt, welche Datenänderungen wann stattgefunden haben, sondern es werden zudem andere Systeme und Services benachrichtigt, die auf diese Änderungen reagieren müssen. Mit Change Data Capture können Unternehmen die Konsistenz und Funktionalität in allen Systemen aufrechterhalten, die auf Daten basieren.
Daten sind für Organisationen fundamental. Dass diese Daten kontinuierlich aktualisiert und geändert werden, stellt Unternehmen vor eine enorme Herausforderung, da sie mit diesen Änderungen Schritt halten müssen. Egal, ob es sich um Informationen zu Transaktionen, Bestellungen, Inventories oder Kunden handelt – der Zugriff auf aktuelle Daten in Echtzeit ist für den Geschäftsbetrieb wesentlich. Damit wichtige Geschäftsprozesse abgeschlossen werden können, müssen Anwendungen im gesamten Unternehmen darüber informiert werden, wenn eine Bestellung aktualisiert, ein neues Kundenkonto erstellt oder eine Zahlung empfangen wurde.
So funktioniert CDC
Bei der Aktualisierung von Quelldatenbanken – oft relationale Datenbanken wie Oracle, Microsoft SQL Server, Postgres oder mysql – müssen Sie gegebenenfalls mehrere damit zusammenhängende Ressourcen wie Caches oder Suchindizes aktualisieren. Bei einem einfachen Ansatz müssten Sie ein Upgrade Ihrer Anwendungen durchführen, um diese Ressourcen gleichzeitig zu aktualisieren. Diese geänderten Daten ständig in mehreren Zieldateien überschreiben zu müssen, führt jedoch zu zahlreichen Herausforderungen und zusätzlichem Koordinierungsaufwand. Mithilfe von CDC können Sie Probleme wie doppelten Schreibaufwand vermeiden und Ressourcen stattdessen gleichzeitig und genau aktualisieren.
CDC schafft dies, indem Änderungen auf Zeilenebene in Datenbank-Quelltabellen nachverfolgt und festgehalten werden, kategorisiert als Einfügungs-, Update- oder Löschungs-Event. Anschließend werden diese Änderungsbenachrichtigungen für andere Systeme oder Services verfügbar gemacht, die auf denselben Daten basieren. Die Änderungsbenachrichtigungen werden in derselben Reihenfolge ausgegeben, in der sie in der ursprünglichen Datenbank erfolgt sind. So stellt CDC sicher, dass alle beteiligten Stellen eines bestimmten Datensatzes genau über Änderungen informiert sind und entsprechend reagieren können, indem sie entweder ihre eigene Version der Daten aktualisieren oder bestimmte geschäftliche Prozesse auslösen.
In modernen Microservice-Architekturen hat CDC an Bedeutung gewonnen, da es eine unverzichtbare Brücke zwischen traditionellen Datenbanken und cloudnativen event-gesteuerten Architekturen schafft. Durch den Einsatz von CDC können Unternehmen ihre Legacy-Datenbanken weiterhin verwenden und ihre Daten gleichzeitig mithilfe von neuen Technologien nutzen. Bei neuen Deployments ist mit CDC die Verwendung von hilfreichen Mustern und Schemas wie der „Outbox" möglich, dank der Microservices die konsolidierten Daten aus Datenbanktransaktionen austauschen können.
Änderungen in Echtzeit mit CDC und Apache Kafka
CDC erfasst zwar Änderungen in Datenbanken, aber dennoch ist ein Messaging-Service erforderlich, um die Änderungsbenachrichtigungen an die jeweiligen Systeme und Anwendungen zu senden. Die effizienteste Möglichkeit dafür ist, Änderungen als Events zu behandeln – wie in einer event-gesteuerten Architektur (EDA) – und sie dann asynchron zu versenden.
Apache Kafka ist eine ideale Möglichkeit zur asynchronen Kommunikation zwischen Datenbanken und deren Nutzern, die wiederholbare Nutzungsmuster mit großen Datenmengen benötigen. Kafka ist eine verteilte Streaming-Plattform, mit der Sie Events in Echtzeit veröffentlichen, abonnieren, speichern und verarbeiten können. Mit ihr können Sie Daten-Streams aus mehreren Quellen handhaben und die Daten an verschiedene Ziele weiterleiten – mit hohem Durchsatz und Skalierbarkeit.
Change Data Capture stellt sicher, dass von Kafka übermittelte Events mit den Änderungen in den ursprünglichen Quellsystemen oder -datenbanken übereinstimmen. Da das Messaging in Kafka asynchron ist, werden Events von den Nutzern entkoppelt, was eine zuverlässige Bereitstellung der Änderungen ermöglicht.
Warum Sie CDC nutzen sollten
CDC-Plattformen wie Debezium verfolgen Änderungen in der Datenbank, indem sie das Transaktionsprotokoll beim Festschreiben von Änderungen überwachen. Eine Alternative zu diesem Ansatz ist ein einfacher polling- oder abfragebasierter Prozess.
Demgegenüber bietet CDC, basierend auf dem Transaktionsprotokoll, mehrere Vorteile:
- Erfassung aller Änderungen: CDC ist darauf ausgelegt, sämtliche an der Datenbank vorgenommenen Änderungen zu erfassen. Ohne CDC kann es vorkommen, dass Änderungen und neue Daten zwischen zwei Polling-Schleifen, etwa Updates oder Löschungen, nicht erfasst werden.
- Geringer Aufwand: Die Kombination aus CDC und Kafka stellt Datenänderungen nahezu in Echtzeit bereit. Dadurch lässt sich eine erhöhte CPU-Last aufgrund von häufigem Polling vermeiden.
- Keine Auswirkungen auf das Datenmodell: Bei der Verwendung von CDC sind Zeitstempelspalten zur Bestimmung der letzten Datenaktualisierung nicht mehr erforderlich.
Use Cases
Die folgenden Beispiele zeigen einige der vielfältigen Use Cases für Change Data Capture.
Microservice-Integration
CDC kann zur Synchronisierung von Microservices mit traditionellen monolithischen Anwendungen verwendet werden und ermöglicht so eine reibungslose Übertragung der Datenänderungen von Legacy-Systemen auf Microservice-Anwendungen.
Datenreplikation
Mit CDC lassen sich Daten in mehreren Datenbanken, Data Lakes oder Data Warehouses replizieren, um sicherzustellen, dass jede Ressource über die neueste Version der Daten verfügt. Dadurch kann CDC mehreren verteilten (und sogar vollkommen isolierten) Teams den Zugriff auf dieselben aktualisierten Daten ermöglichen.
Analyse-Dashboards
Mit CDC können Sie Datenänderungen in Analyse-Dashboards für Business Intelligence oder andere Zwecke einspielen und so die zeitkritische Entscheidungsfindung unterstützen.
Auditing und Compliance
Zur Einhaltung von strengen Daten-Compliance-Anforderungen und aufgrund schwerer Sanktionen bei Nichteinhaltung ist es unerlässlich, eine Historie der Datenänderungen zu speichern. CDC kann genutzt werden, um Datenänderungen für Audit- oder Archivierungsanforderungen zu speichern.
Cache-Invalidierung
CDC lässt sich für die Cache-Invalidierung verwenden, damit veraltete Cache-Einträge ersetzt oder entfernt werden, um die neuesten Versionen anzuzeigen.
CQRS-Modell-Updates
CDC kann genutzt werden, um CQRS-Lesemodelle (Command Query Responsibility Separation) mit primären Modellen zu synchronisieren.
Volltextsuche
Mit CDC kann ein Volltextsuchindex automatisch mit der Datenbank synchronisiert werden.
Geschäftliche Vorteile von CDC
Change Data Capture kann Sie dabei unterstützen, schnelle datengestützte Entscheidungen zu treffen und so den Zeit-, Arbeits- und Kostenaufwand zu reduzieren.
Wert Ihrer Daten maximieren
Mit CDC können Unternehmen den Wert ihrer Daten maximieren, indem sie die Informationen für mehrere Zwecke nutzen. Durch die Möglichkeit zur laufenden Aktualisierung derselben Daten in verschiedenen Silos lässt sich der maximale Nutzen aus den Daten ziehen, ohne die Datenintegrität zu beeinträchtigen.
Auf dem neuesten Stand bleiben
CDC ermöglicht die Synchronisierung mehrerer Datenbanken und Anwendungen mit den neuesten Daten, wodurch Stakeholder stets aktuelle Informationen erhalten.
Bessere, schnellere Entscheidungen treffen
CDC gibt geschäftlichen Nutzern die Möglichkeit, genauere und schnellere Entscheidungen zu treffen – auf Grundlage der neuesten Informationen. Da für die Entscheidungsfindung genutzte Daten oft schnell an Wert verlieren, müssen sie unbedingt so schnell wie möglich für alle Stakeholder zur Verfügung gestellt werden, was über CDC und Kafka möglich ist. Für Ihren Wettbewerbsvorteil ist es wesentlich, dass Sie den entscheidenden Personen Zugriff auf genaue Analysen nahezu in Echtzeit bieten können.
Geschäftsbetrieb ohne Verzögerungen aufrechterhalten
Wenn Daten in mehreren Systemen nicht synchronisiert werden, können bei diesen Systemen Probleme auftreten, wie etwa beim Abstimmen von Bestellungen, Verarbeiten von Transaktionen, Generieren von Berichten, Einhalten von Produktionsterminen oder beim Kundenservice. Diese Situationen können zu Verzögerungen in Ihrem Unternehmen führen. Das wiederum bedeutet Umsatzeinbußen. CDC ermöglicht das Synchronisieren von Daten mit niedrigen Latenzzeiten und über eine Vielzahl von Systemen hinweg, damit Ihre Abläufe reibungslos ausgeführt werden.
Red Hat CDC: Debezium und Apache Kafka
Red Hat Integration bietet CDC-Funktionen über Debezium in Kombination mit Red Hat AMQ Streams and Apache Kafka. Debezium ist eine verteilte protokollbasierte Open-Source-CDC-Plattform, mit der sich Änderungen aus vielen verschiedenen Datenbanksystemen erfassen lassen. Debezium ist schnell und dauerhaft, sodass Ihre Anwendungen schnell reagieren können und dabei keine Events verpassen.