Während ETL traditionell ein Batch-orientierter Prozess ist, erweitern verteilte Event-Streaming-Plattformen wie Apache Kafka die ETL-Muster von der Batch-Verarbeitung auf kontinuierlich eintreffende Event Streams. Solche Streaming-ETL-Prozesse ermöglichen die Datenverarbeitung in Echtzeit.
Kafka-kompatible Streaming-Prozessoren wie Kafka Streams, ksqlDB und Apache Flink ermöglichen es Dateningenieuren, ETL-Pipelines zu erstellen, die Ereignisströme aus Quellsystemen erfassen, die Daten während der Übertragung transformieren und an Analyse-Engines sowie nachgelagerte Anwendungen weiterleiten – und das alles mit geringer Latenz, im Gegensatz zur auf Batch-Verarbeitung basierenden Integration.
Streaming-ETL bietet gegenüber herkömmlichem ETL weitere Vorteile. Zwei Schlüsselfaktoren sind Flexibilität und Skalierbarkeit. Während traditionelle ETL-Pipelines mit einer Transformationslogik erstellt werden, die auf bestimmte Anwendungsfälle und Zielsysteme zugeschnitten ist, können Daten, die aus verschiedenen Quellen in Kafka gestreamt werden, für unterschiedliche Anwendungsfälle und Verbraucher transformiert werden.
Mit anderen Worten: Streaming-ETL erfordert nicht die enge Kopplung, die für traditionelles ETL typisch ist, wodurch wiederverwendbare Datenströme ermöglicht und der Zeit- und Arbeitsaufwand für die Neukonfiguration von Pipelines reduziert wird.
Trotz dieser Vorteile können Unternehmen sich weiterhin für das traditionelle ETL anstelle des Streaming-ETL entscheiden, wenn komplexe Transformationen erforderlich sind oder wenn Zeit nicht von entscheidender Bedeutung ist. In solchen Fällen können traditionelle ETL- und Batch-Verarbeitung kosteneffizienter sein als Streaming-ETL.