Für Change Data Capture von Oracle-DB in Richtung Kafka existieren diverse Lösungen auf Pull und Push-Basis. Pull-basierte Lösungen wie z.B. Kafka-Connect haben funktionale Einschränkungen und erfordern strukturelle Voraussetzungen in der DB. Push-Lösungen wie z.B. Oracle Golden Gate, Quest Shareplex or Red Hat Debezium bieten vollen Funktionsumfang und basieren meist auf asynchroner Verarbeitung der Transaktionslogs der DB. Voraussetzung für deren Einsatz ist damit der Zugriff auf die Transaktionslogs sowie eine hinreichende Dauer der Verfügbarkeit dieser Logfiles für die CDC-Verarbeitung. Damit existieren Hürden für den Einsatz dieser CDC-Lösungen z.B. bei gemanagten Cloud-DB ohne Eingriffsmöglichkeit in Operation als auch bei DB mit exzessiver Transaktionslast wo längere Verfügbarkeit der Transaktionslogs einen starken Eingriff in Betrieb der DB erfordert.

Das hier vorgestellte CDC-Tool MOVEX Change Data Capture adressiert diese Problemstellungen und erlaubt den Transfer von Change-Events aus Oracle-DB nach Kafka ohne Eingriff in die Betriebsführung der DB, ohne Eingriff in die Strukturen der bzgl. Änderungen überwachten DB-Applikationen sowie mit Isolierung aller für CDC notwendigen Strukturen in einem eigenen DB-Schema. MOVEX Change Data Capture fängt Data Change Events (Insert/Update/Delete) per Trigger auf DB-Tabellen und transferiert diese zeitnah an einen Kafka Event Hub. Über ein Web-GUI werden die zu observierenden Tabellen und Spalten definiert sowie die Generierung der DB-Trigger ausgelöst. Die Funktionen von MOVEX Change Data Capture sind alternativ zum GUI auch über API ansprechbar. Die synchrone Erfassung und Speicherung der Change Events erfolgt initial lokal in der DB ohne weitere externe Abhängigkeiten. Damit ist auch ein Malus der Lösung genannt: Change Events werden doppelt geschrieben in der lokalen DB. Die Übertragung der Events an Kafka erfolgt dann asynchron (isoliert von der Trigger-Verarbeitung und horizontal skalierbar für Milliarden Events/Tag). Der Fokus von MOVEX Change Data Capture liegt auf ressourcenschonender und dabei trotzdem stabiler und performanter Verarbeitung bei niedriger Komplexität im Betrieb und minimalem Operation-Aufwand. Sämtliche Funktionen der Applikation für Initialisierung der eigenen Datenstrukturen, Web-GUI, Trigger-Generierung, Event-Transfer zu Kafka laufen in genau einem Docker-Container. MOVEX Change Data Capture ist aktuell implementiert für CDC in Oracle-DB, die Erweiterung für PostgreSQL und MS SQL-Server ist in Planung.