Evaluation: ETL vs. Event Streaming zur Integration von Stammdaten

post-thumb

In vielen Projekten fragen wir uns, welchen Ansatz wir zur Datensynchronisation zwischen zwei Anwendungen verwenden sollen. Oft müssen wir uns zwischen dem klassischen ETL-Ansatz und einem Event-basierten Ansatz mit Apache Kafka oder Azure Event Hubs entscheiden. Event Streaming (ES) wirbt in der Regel mit seiner Skalierbarkeit. Für uns stellte sich jedoch die Frage, ob der Einsatz auch bei kleinen Datenmengen sinnvoll ist. Zum Beispiel, um Stammdaten zwischen mehreren Anwendungen zu synchronisieren. Wir haben daher eine Evaluation durchgeführt, um zu erfahren, wie sich Integrationslösungen für Anwendungsfälle mit kleineren Datenmengen einsetzen lassen.

In diesem Beitrag wird auf die Ergebnisse einer Evaluierung zwischen ETL und Event Streaming eingegangen und eine Empfehlung ausgesprochen, bei welchen Anforderungen welcher Ansatz angewendet werden sollte.

Grundlagen zu ETL und Event Streaming

ETL

ETL ist ein gängiger Ansatz zur Datenintegration, bei dem Daten aus verschiedenen Quellen extrahiert, transformiert (Format- und Datenumwandlungen) und dann in ein zentrales Zielsystem geladen werden. Dieser Ansatz eignet sich gut zur Erfassung und Verarbeitung großer Mengen historischer Daten für Analysen und Berichte.

Event Streaming

Im Gegensatz zu ETL, bei dem die Daten regelmäßig nach einem festen Zeitplan übertragen werden, werden beim Event Streaming (ES) die Daten “kontinuierlich” in Form von Ereignissen übertragen. Ein Ereignis kann z.B. das Anklicken eines Buttons sein, wodurch ein Event erzeugt wird. Dieses Ereignis wird zur weiteren Verarbeitung an interessierte Anwendungen weitergeleitet und enthält Informationen über das eingetretene Ereignis.

Azure-Lösung

Die Implementierung kann mithilfe von Azure Event Hubs zur Verteilung und einer Azure Function zur Verarbeitung der Events erfolgen.

Ergebnisse der Evaluierung (ETL vs. Event Streaming)

Die Evaluierung erfolgte anhand von 4 Bewertungskriterien:

  • Implementierungsaufwand
  • Kosten
  • Performance
  • Modifizierbarkeit

Implementierungsaufwand

Der Implementierungsaufwand ist bei ETL erheblich geringer. Event Streaming benötigt anfänglich mehr Infrastruktur als ETL, weswegen bei einfachen Anwendungsfällen ohne besondere Anforderungen an die Performance ETL besser geeignet ist, um Implementierungsaufwand und damit Entwicklungskosten zu sparen. ETL kann allerdings bei einer Vielzahl von Anwendungen, die untereinander synchronisiert werden müssen, zu einem sehr hohen Implementierungsaufwand führen, wenn zwischen jeder Anwendung eine Verbindung hergestellt werden muss.

Kosten

Die variablen Kosten für den Betrieb der Lösungen machen bei kleinen Datenmengen nur einen geringen Anteil an den Implementierungskosten aus. Bei ETL-Lösungen ist mit monatlichen Kosten von wenigen Euro zu rechnen. Auch die Nutzung von Azure Event Hubs für ES ist mit ~20 Euro pro Monat relativ gering. Allerdings weist ETL in diesem Punkt geringere Entwicklungs- und variable Kosten auf.

Performance

Im Hinblick auf die Performance hat ES Vorteile. ETL-Jobs werden typischerweise in Zeitintervallen ausgeführt. Dies führt zu inkonsistenten Datenbeständen zwischen diesen Intervallen. Diese zeitlichen Intervalle liegen in der Regel zwischen einer Minute und einem Tag, abhängig von der jeweiligen Anwendung. Häufigere Synchronisierungen sind selten und werden auch von Werkzeugen wie der Azure Data Factory nicht unterstützt. Ereignisse werden nahezu in Echtzeit verarbeitet. In Tests wurde mit ES eine durchschnittliche Synchronisationszeit von 5 Sekunden zwischen der Erstellung einer Ressource in einer Anwendung und der Speicherung der Ressource in der Datenbank eines Drittsystems gemessen. Wobei hier der großteil der Zeit auf die Erstellung des Events innerhalb des Quellsystems anfiel. Die reine Verarbeitungszeit wird um die 50ms betragen.

Modifizierbarkeit

Hinsichtlich der Modifizierbarkeit hat ES ein größeres Potenzial als ETL, da einerseits die Skalierbarkeit mit ES sehr gut möglich ist und andererseits Probleme wie die Änderung eines Datenformats mit ES einfacher zu implementieren sind. ETL ist in diesen Fällen oft sehr stark von einer API abhängig. ES hat durch die Speicherung von Events die Möglichkeit, auch nachträglich für das Reporting Daten über gelöschte Ressourcen zu liefern oder Daten zu ergänzen.

Fazit der Evaluierung von ETL vs. Event Streaming

Die Betrachtung dieser Bewertungskriterien lässt keine generelle Aussage darüber zu, welcher Ansatz nun generell zu bevorzugen ist. ETL hat Vorteile bei den Kosten und beim Implementierungsaufwand. Daher würde ich im Normalfall empfehlen, dass ETL die Standardlösung bleibt. Die zusätzliche Infrastruktur und der damit verbundene Implementierungsaufwand wird sich in vielen Projekten nicht rechnen.

Event Streaming wird als sehr performante und skalierbare Technologie beworben und ist es ohne Frage auch. Allerdings wird diese Performance in vielen Projekten nicht benötigt werden, weshalb Event Streaming meiner Meinung nach ein Sonderfall bleiben sollte. Auch hier sollte der Grundsatz gelten:

Don´t be afraid to use the best tool for the job, even if its uncool, old-fashioned or unusual.

Lernen Sie uns kennen

Das sind wir

Wir sind ein Software-Unternehmen mit Hauptsitz in Karlsruhe und auf die Umsetzung von Digitalstrategien durch vernetzte Cloud-Anwendungen spezialisiert. Wir sind Microsoft-Partner und erweitern Standard-Anwendungen bei Bedarf – egal ob Modernisierung, Integration, Implementierung von CRM- oder ERP-Systemen, Cloud Security oder Identity- und Access-Management: Wir unterstützen Sie!

Mehr über uns

Der Objektkultur-Newsletter

Mit unserem Newsletter informieren wir Sie stets über die neuesten Blogbeiträge,
Webcasts und weiteren spannenden Themen rund um die Digitalisierung.

Newsletter abonnieren