Debezium erfasst Datenbankänderungen in Echtzeit. Jedes INSERT, UPDATE und DELETE wird ohne Belastung der Quelldatenbank an Kafka übertragen.
Change Data Capture¶
CDC liest das Transaktionslog (WAL, Binlog) — belastet die Quelldatenbank nicht.
{
"name": "postgres-cdc",
"config": {
"connector.class": "io.debezium.connector.postgresql.PostgresConnector",
"database.hostname": "postgres",
"database.dbname": "app",
"topic.prefix": "cdc",
"table.include.list": "public.orders",
"plugin.name": "pgoutput",
"transforms": "unwrap",
"transforms.unwrap.type": "io.debezium.transforms.ExtractNewRecordState"
}
}
CDC → Data Lake¶
- Debezium → Kafka
- Flink/Spark → Verarbeitung
- Delta/Iceberg/Hudi → Upsert
Best Practices fuer die Produktion¶
Verwenden Sie Debezium in Produktionsumgebungen mit Kafka Connect im verteilten Modus fuer Hochverfuegbarkeit. Setzen Sie snapshot.mode nach Bedarf — initial fuer die erste vollstaendige Datenbanksynchronisation, schema_only wenn Sie nur neue Aenderungen benoetigen. Die ExtractNewRecordState-Transformation vereinfacht die Nachrichtenstruktur vom Envelope-Format zu flachem JSON.
Ueberwachen Sie den Lag zwischen Quelldatenbank und Kafka-Topics mit Debezium-Metriken. Bei Performance-Problemen erwaegen Sie Spaltenfilterung mit column.include.list — uebertragen Sie nur die Daten, die Sie tatsaechlich benoetigen. Seien Sie vorsichtig bei Schema-Migrationen — ALTER TABLE auf der Quell-DB erfordert einen Neustart des Connectors mit dem neuen Schema. Debezium unterstuetzt PostgreSQL, MySQL, MongoDB, SQL Server, Oracle und weitere Datenbanken.
Zusammenfassung¶
Debezium ist der Standard für CDC im Kafka-Ökosystem. Nahezu Echtzeit-Replikation ohne Belastung der Quelldatenbank.