5 Stufen

Vom Data Warehouse zum Echtzeitdaten-Streaming

03.11.2023
Von 


Christopher Keller leitet den Bereich Big Data Analytics & IoT bei it-novum und verantwortet seit mehr als 15 Jahren Daten- und Digitalisierungsprojekte.
Mit diesen 5 Etappen schaffen Unternehmen den Wandel vom klassischem Data Warehouse zum Echtzeit-Daten-Streaming.
Die immer komplexeren Business-Anforderungen erfordern häufig Echtzeitdaten statt einer Retrospektive.
Die immer komplexeren Business-Anforderungen erfordern häufig Echtzeitdaten statt einer Retrospektive.
Foto: Quardia - shutterstock.com

Bislang ging es beim Data Warehousing darum, historische Daten auszuwerten. Die Vergangenheit wurde analysiert, um Geschäftsprozesse in der Zukunft zu gestalten. Ob die Informationen dabei aktuell waren, war nachrangig. Diese Zeit ist vorbei. Heute wollen Unternehmen die Gegenwart steuern können.

So braucht es ein Realtime Daten-Streaming, um die Besucher auf Webseiten in Echtzeit zu lenken. Auch in der Fertigung oder Logistik sind Echtzeitdaten essentiell, um Geräte überwachen, Abläufe steuern und Verkehrsströme verbessern zu können.

Damit Organisationen den Schritt von der traditionellen Datenarchitektur mit Data Warehouse zum Umgang mit Daten in Echtzeit gelangen können, müssen sie fünf Stufen durchlaufen:

1. Anerkennung der traditionellen Data Warehouse-Abläufe

Zunächst müssen Organisationen die Funktionsfähigkeit ihres Data Warehouses anerkennen, was das klassische Reporting und historische sowie strategische Analyse betrifft. Data Warehouses nehmen die Datenverarbeitung in Batches vor und extrahieren Daten aus anderen Systemen meist zu Randzeiten, damit Systeme möglichst wenig beansprucht werden. Häufig gilt das auch für das Staging.

Für Auswertungen von in der Vergangenheit liegenden Daten oder für klassische ETL-Jobs (Extract, Transform, Load) ist die alte Datenarchitektur also immer noch völlig ausreichend. Offene Lösungen für die Batchverarbeitung von Datenbeständen wie Hadoop erfüllen weiterhin ihren Zweck. Wichtig ist es, den Punkt zu erkennen, wo dieses Konzept sein Limit hat.

2. Streaming einzelner Anwendungsfälle

Der erste Schritt in Richtung einer Echtzeit- Streaming-Lösung ist die Anpassung eines einzelnen Use Cases. Dafür können Realtime-Berichte entwickelt werden, beispielsweise, was die Verfügbarkeit von Artikeln in einem Geschäft betrifft. Das heißt, der bestehende ETL-Prozess mit Staging und Batch-Verarbeitung in den Nachtstunden bleibt bestehen.

Nur Informationen, welche die Artikelverfügbarkeit betreffen, werden in kurzen Abständen wie 60 Sekunden oder 10 Minuten in das Data Warehouse geladen. Dazu lässt sich eine Change-Data-Capture-Funktion implementieren. Zum Einsatz kommen bewährte ETL-Lösungen wie Pentaho Data Integration.

Dadurch sind die Informationen aktueller als bei klassischen Berichten, auch wenn kein echtes Realtime Streaming erfolgt. Allerdings führt dieses inkrementelle Vorgehen möglicherweise zu inkonsistenten Daten, was den Druck erhöht, auch andere Informationen schneller ins Data Warehouse zu laden, um weitere Anwendungsfälle umsetzen zu können.

3. Schaffung einer skalierbaren Streaming-Umgebung

Damit möglichst viele Anwendungsfälle in Fast-Echtzeit mit Daten arbeiten können, ist es nötig, alle ETL-Prozesse einer umfassenden Anpassung zu unterwerfen. So müssen einige Bestandteile des Data Warehouse an schnellere Ladezyklen angepasst werden. Das steigert dann wieder den Umfang an ETL-Strecken. Von großer Bedeutung ist dabei die Umsetzung leistungsoptimierter Datenprozesse, um eine Überlastung der Quellsysteme zu vermeiden.

Die große Herausforderung ist die Inkompatibilität von Streaming mit normalen SQL-Datenbanken, weil sie nicht für Streaming-Anwendungen entwickelt wurden. Bei Zunahme der ETL-Jobs und der Zugriffe auf die gleichen Tabellen, ist nach einiger Zeit das Entstehen von Inkonsistenzen möglich. Die Architektur muss deshalb grundlegend überarbeitet und eine leistungsfähige Streaming-Umgebung entwickelt werden.

4. Kontinuierliche, event-basierte Datenverarbeitung

Die in den letzten Jahren dazugekommenen neuen Datenquellen haben die Streaming-Anforderungen an das Data Warehouse forciert. Für eine Echtzeitverarbeitung von Informationen wie Click-Stream-Daten der Besucher einer Internetseite oder IoT-Maschinendaten ist eine stetige und eventbasierte Verarbeitung nötig.

Das ständige Wachstum von ETL-Strecken verursacht zugleich eine starke Zunahme der Last auf die Quellsysteme. Das gilt besonders bei zeitgleichem Laden von mehreren Strecken. Solche Situationen erfordern Streaming-Fähigkeiten. Staging wird nicht mehr durchgeführt, weil der zusätzliche Synchronisationsbedarf den Aktualitätszustand der Informationen im Data Warehouse überschreitet.

Ein vertikales Skalieren von ETL-Strecken führt wiederum zu kurz, weil sie nur zu einer komplexen Architektur führt, die nicht mehr zu managen ist. Ein ganzheitlicher Ansatz ist gefragt, damit das Data Warehouse mit Streaming-Funktionen erweitert werden kann.

5. Umsetzung einer Event-Streaming-Architektur

Damit ein Data Warehouse Funktionen für das Echtzeit-Daten-Streaming erhält, muss es mit einer entsprechenden Lösung kombiniert werden. In einer derartigen Architektur wird das traditionelle Staging mit einem Kafka-Cluster als Speicherschicht ersetzt. Das Laden der Daten erfolgt nur im EL-Verfahren, die Transformationen lassen sich in einem zweiten Schritt nachgesetzt von Tools wie Pentaho durchführen.

Das System organisiert dazu die Informationen in briefkasten-ähnlichen Topics, in die Nachrichten eingeworfen werden. Dies passiert durch sogenannte Producer-Applikationen, Consumer-Applikationen lesen hingegen diese Events und verarbeiten sie. Dadurch ist es möglich, Producer und Consumer vollständig zu entkoppeln, weshalb dieses Read-once-/Write-many-Prinzip maßgeblich die Skalierbarkeit bedingt. Zudem ist es mit dieser Architektur möglich, taktisch-operatives Berichtswesen in Fast-Echtzeit von klassisch-analytischem Reporting zu trennen. Werden Event-Nachrichten von Consumer-Applikationen nicht sofort benötigt, können sie als Batches geladen werden. Für dieses Situationen ist die Confluent-Plattform sehr geeignet, einer Kafka-Plattform mit Enterprise-Funktionalitäten.

Auf Kurs mit Open Source

Die Limitationen eines traditionellen Data Warehouse, was Realtime-Daten und Streaming betrifft, lassen sich mit einer eventbasierten Architektur dauerhaft aufheben. Es ist ratsam, dafür quelloffene Technologien einzusetzen, wie in den vorherigen Schritten beschrieben. Ausschlaggebend sind dabei nicht die geringeren Kosten, sondern die viel bessere Agilität und Flexibilität. Open-Source-Systeme verfügen über eine große Palette von Plugins, sind individuell erweiterbar und stellen meistens den "best of breed" im Markt dar. Zusätzlich bieten sie ein wesentlich besseres Sicherheitsniveau, weil sie Einblicke in den Quellcode ermöglichen. Damit steht Organisationen der Wandel vom klassischem Data Warehouse zum Echtzeit-Daten-Streaming offen. (mb)