•   Peter Ramm
  •   Dienstag, 07. Dez 2021
  •   12:00 - 12:45
  •  Track 3
  • Session
  IT-Tage 2021
  •  Live-Streaming von über 200 Vorträgen in 18 Subkonferenzen.
  •  365 Tage On-Demand-Zugriff auf 260 Vortragsvideos und ein umfangreiches Archiv an Informationen der Konferenz.
  •  Weitere 6 Remote-Konferenzen in 2022.

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 TriXX 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. TriXX 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 TriXX 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 TriXX 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. TriXX ist aktuell implementiert für CDC in Oracle-DB, die Erweiterung für PostgreSQL und MS SQL-Server ist in Planung.