Heutige Unternehmen, insbesondere solche, die der digitalen Transformation Priorität einräumen, benötigen dringend Echtzeitdaten. Die herkömmliche wöchentliche und monatliche Stapelverarbeitung kann die Nachfrage nicht mehr decken. Es ist jedoch nicht einfach, Echtzeitdaten aus mehreren Quellen zu erhalten und diese zur Automatisierung von Prozessen und zur dynamischen Optimierung von Entscheidungen zu nutzen.
Kürzlich standen wir vor der Herausforderung, das Altsystem eines Kunden neu zu gestalten und die monolithische Architektur in Microservices aufzuteilen. Wir haben begonnen, Änderungen an der Datenbank vorzunehmen und das System modulweise zu modernisieren. In dieser Phase müssen wir sicherstellen, dass beide Datenbanken synchron bleiben, da verschiedene Module möglicherweise dieselben Daten benötigen – mit anderen Worten: Das alte System benötigt Daten, die vom neuen System in der neuen Datenbank generiert wurden, und umgekehrt.
Wir haben die Change Data Capture (CDC)-Technologie untersucht, um festzustellen, ob sie unseren Anforderungen entspricht. Der Artikel beschreibt detailliert die Definition von CDC, die von uns getesteten Tools, ihre Funktionsweise und ihre Vorteile. Gleichzeitig haben wir einige Fälle und Vorschläge geteilt, um anderen Technikern bei der Auswahl der geeigneten CDC-Tools in bestimmten Situationen zu helfen.
Datenerfassung ist der Prozess der Erkennung und Erfassung von Änderungen im Quellsystem und der anschließenden Übermittlung dieser Änderungen an das Zielsystem nahezu in Echtzeit. Zu diesen Änderungen können Einfüge-, Lösch- und Aktualisierungsvorgänge sowie DDL-Änderungen an der Datenbankstruktur gehören.
CDC-Tools implementieren ihre Funktionalität, indem sie Datenänderungen in Quellsystemen überwachen. Sobald eine Änderung entdeckt wird, erfasst das CDC-Tool sie und zeichnet sie an einem bestimmten Ort auf, beispielsweise in einer Datenbank oder einer Protokolldatei. Die verarbeiteten und transformierten Daten werden dann in ein Zielsystem geladen, beispielsweise ein Data Warehouse oder eine Analyseplattform.
Es gibt mehrere Möglichkeiten, Datenbankänderungen zu erfassen. Schauen wir uns einige davon an:
Bei dieser Methode verwalten wir einige Prüfspalten ähnlich CREATED_AT, LAST_UPDATED oder DATE_MODIFIED in der Quelle und erkennen Änderungen in diesen Spalten, indem wir die Daten in der Quelle abfragen, um etwaige Datenänderungen zu erfassen. Es ist zu beachten, dass diese Methode keine Löschvorgänge aufzeichnet.
Ein Trigger ist eine Funktion in der Datenbank, die eine Aktion basierend auf einem bestimmten Ereignis ausführt. Obwohl es zum Erfassen von Änderungen, einschließlich Löschvorgängen, nützlich ist, verringert es die Datenbankleistung, da jedes Ereignis mehrere Schreibvorgänge erfordert.
Die Datenbank enthält Transaktionsprotokolle zur Wiederherstellung im Falle eines Absturzes und speichert alle Ereignisse. Beim protokollbasierten CDC werden neue Datenbanktransaktionen direkt aus dem nativen Protokoll gelesen, was die Erfassung von Änderungen ohne Scannen der Quelltabelle ermöglicht und daher effizienter ist.
Dieser Ansatz ähnelt dem Event Sourcing in der ereignisgesteuerten Architektur. Immer wenn sich der Systemstatus ändert, zeichnen wir dies als Ereignis auf. Die aufgezeichneten Ereignisse können in der gleichen Reihenfolge wiedergegeben werden, um jederzeit den Systemzustand zu rekonstruieren.
CDC ist in vielen Szenarien je nach Situation, Anwendung, Architektur und Geschäftsanforderungen von entscheidender Bedeutung. Hier sind einige Möglichkeiten, wie das CDC beim Engineering-Prozess hilft:
Es gibt mehrere CDC-Tools auf dem Markt, wie zum Beispiel Oracle Golden Gate, Debezium, IBM Infosphere, Striim, StreamSets und Qlik Replicate. Diese Tools können Open Source oder kostenpflichtig sein. Sie unterstützen typischerweise lokale und Cloud-Umgebungen und können eine Vielzahl von Datenquellen verarbeiten. Berücksichtigen Sie bei der Auswahl Folgendes:
Da Unternehmen immer technologieorientierter werden, werden historische und aktuelle Daten zu einem entscheidenden Unterscheidungsmerkmal. Die Erzielung einer genauen, zeitnahen, effizienten und kostengünstigen Erfassung von Änderungsdaten wird ein wichtiger Bestandteil jedes Technologietransformationsprogramms sein. Wenn Sie mit dieser Situation konfrontiert sind, hoffe ich, dass dieser Artikel Ihnen helfen kann.
Das obige ist der detaillierte Inhalt vonÄnderungsdatenerfassung: Überblick, Warum und Best Practices. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!