Näher am Geschehen mit Echtzeit-Analyse von Datenströmen

Bietet Stream Processing für Entwickler Vorteile?

| Autor / Redakteur: Stephan Ewen * / Stephan Augsten

Stream Processing erlaubt es, Daten direkt zum Zeitpunkt der Generierung zu verarbeiten und zu analysieren.
Stream Processing erlaubt es, Daten direkt zum Zeitpunkt der Generierung zu verarbeiten und zu analysieren. (© MG - stock.adobe.com)

Stream Processing erlaubt Echtzeit-Datenanalysen in hochskalierbaren Umgebungen. Doch sowohl auf Seiten der Entwickler als auch bei Bestandsdaten und -anwendungen erfordert die Adaption eine Neuausrichtung.

Die Analyse und Nutzung von Daten ist heute alltäglich in modernen, hochgradig digitalisierten Unternehmen. Unmengen an Daten bedeuten jedoch nicht zwangsläufig auch Geschäftserfolg. Die Geschwindigkeit der Datenanalyse wird immer wichtiger. Dies bedeutet, neu entstehende Daten sofort auszuwerten und unmittelbar darauf zu reagieren, um vorteilhafte Geschäftsentscheidungen zu treffen.

Hier gewinnen Data Streaming, Stream Processing und Echtzeit-Datenanalyse an Bedeutung. Open-Source-Plattformen für die Datenstromverarbeitung können große Mengen von Ereignissen, abgebildet durch Daten, sofort verarbeiten. Unternehmen gewinnen somit wertvolle Einblicke – und was noch wertvoller ist: Sie gewinnen diese Einblicke, Erkenntnisse und Handlungsoptionen in Echtzeit.

Diese Art der unmittelbaren Verarbeitung von Daten in Bewegung ist erst dank den immer leistungsfähigeren Infrastrukturen der letzten Jahre interessant geworden. Anfangs kam eine Batch-orientierte Dateninfrastruktur zum Einsatz für die entsprechend benannte Batchverarbeitung oder Stapelverarbeitung. Dabei wurden die Daten zunächst gespeichert und zu einem späteren Zeitpunkt verarbeitet.

Da in der modernen Analytik und im Business heute Echtzeit das Maß der Dinge ist, kommt Stream Processing, also Datenstromverarbeitung, ins Spiel. Diese Methode der Datenverarbeitung ist ausgelegt auf einen kontinuierlichen Datenfluss und liefert Ergebnisse nahezu in Echtzeit.

Kontinuierliche, sehr schnelle und besonders zuverlässige Verarbeitung von Daten

Beim Stream Processing werden die Daten fehlertolerant gespeichert, die Datenverarbeitung ist hochgradig skalierbar und wird mit einer hohen Zuverlässigkeit ausgeführt. Ereignisse wie Sensordaten von IoT-Geräten, Online-Shopping-Nutzerverhalten oder Finanztransaktionsdaten können dadurch kontinuierlich, sehr schnell und besonders zuverlässig verarbeitet werden.

Während herkömmliche Geschäftsdatenbanken oder Analyseanwendungen wie Business-Intelligence-Software Ereignisse aus der Vergangenheit analysieren, ermöglicht es die Stream-Verarbeitung, Daten direkt zum Zeitpunkt der Generierung zu verarbeiten. Unternehmen, die mit Stream Processing arbeiten, sind dadurch wesentlich näher am Geschehen.

Systeme, die Datenströme empfangen und senden und Anwendungs- oder Analyselogik ausführen, werden als Stream-Prozessoren bezeichnet. Die Hauptaufgabe eines Stream-Prozessors besteht darin, sicherzustellen, dass der Datenfluss und die Berechnungsskalen effizient und fehlertolerant sind.

Wurden in der Anfangszeit Stream-Prozessoren zur Berechnung ungefährer aggregierter Werte verwendet, lassen sich heute bereits präzise Analyseapplikationen betreiben und komplexe Geschäftslogik in Hochdurchsatz-Streams bewerten. Einer der wichtigsten Aspekte der Stream-Verarbeitung ist die Zustandsbehandlung, also die „Erinnerung“ an vergangene Eingaben und deren Verwendung, um die Verarbeitung zukünftiger Eingaben zu beeinflussen.

Beim Empfangen eines Ereignisses aus dem Stream reagiert eine Stream-Processing-Anwendung auf dieses Ereignis: Sie kann eine Aktion auslösen, ein Aggregat oder eine andere Statistik aktualisieren oder sich dieses Ereignis als zukünftige Referenz „merken“. Streaming-Berechnungen können auch mehrere Datenströme gemeinsam verarbeiten, und jede Berechnung über den Ereignisdatenstrom kann andere Ereignisdatenströme erzeugen.

Apache Flink: Datenstromverarbeitung mit hohem Durchsatz und geringer Latenz

Apache Flink ist ein Stream-Processing-Framework aus dem Open-Source-Umfeld. Entwickelt wurde Flink als Distributed-Data-Prozessor, um zustandsorientierte Berechnungen über Datenströme auszuführen. Flink ist extrem genau in der Datenaufnahme, ist schnell wieder einsatzfähig nach Ausfällen, während der bisherige Zustand erhalten bleibt, und ist hochgradig skalierbar.

Die Runtime von Flink ist optimiert für die Verarbeitung unbegrenzter Datenströme sowie begrenzter Datensätze beliebiger Größe. Flink ist in der Lage, Berechnungen auf Tausende von Kernen zu skalieren und damit Datenströme mit hohem Durchsatz bei geringer Latenzzeit zu verarbeiten.

Flink-Anwendungen können für Ressourcenmanager wie Hadoop YARN, Apache Mesos und Kubernetes oder für eigenständige Flink-Cluster bereitgestellt werden. Fehlertoleranz ist ein sehr wichtiger Aspekt von Flink, wie bei jedem verteilten System. Flink kann in einem hochverfügbaren Modus ohne Single Point of Failure arbeiten und zustandsorientierte Anwendungen aus Ausfällen mit genau einmaligen Zustandskonsistenzgarantien wiederherstellen.

Darüber hinaus bietet Flink viele Funktionen, um die betrieblichen Aspekte der laufenden Stream-Processing-Anwendungen in der Produktion zu erleichtern. Der Datenprozessor lässt sich problemlos in die bestehende Protokollierungs- und Metrikinfrastruktur integrieren und bietet eine REST-API zum Senden und Steuern laufender Anwendungen.

Mittels Flink laufen geschäftskritische Anwendungen in vielen Unternehmen auf der ganzen Welt und in vielen Branchen wie E-Commerce, Telekommunikation, Finanzdienstleistungen, Gaming und Entertainment. Benutzer melden Anwendungen, die auf Tausenden von Kernen laufen, Terabyte von Zustandsdaten pflegen und Milliarden von Ereignissen pro Tag verarbeiten. Die Open-Source-Community, die Flink entwickelt, wächst kontinuierlich und gewinnt stetig neue Nutzer.

Gute Planung sorgt – wie so oft – für reibungslose Einführung

Was bedeutet es, den Einsatz von Stream Processing für die Entwicklung einer neuen Anwendung oder für bestehende Anwendungen zu berücksichtigen? Die Entwicklung neuer Anwendungen oder die Umstellung bestehender Anwendungen auf eine Stream-Processing-Datenarchitektur kann zu Beginn eine große Herausforderung darstellen. Wenn die Einführungsphase gut geplant und entsprechend ausgeführt wird, kann daraus ein reibungsloser Prozess hervorgehen, der sich letztendlich vorteilhaft auf die Arbeitsweise eines Entwicklerteams auswirken wird.

Insbesondere vor jeder Änderung bestehender Anwendungen, die in eine Stream-Processing-Infrastruktur übergehen, müssen sorgfältige Planungs- und Ausführungsschritte durchgeführt werden. Folgende Schritte sind Teil dieses Prozesses:

  • Entscheidung über den zu verwendenden Technologie-Stack: Sie sollten stets das gesamte Entwicklerteam in den Prozess einbinden. Wenn Sie ein bestimmtes Maß an Autonomie und Experimentierfreude zulassen, dürfte auch die Beteiligung der Entwickler und die Akzeptanz für den neuen Technologie-Stack deutlich höher sein.
  • Teamtraining und Entwicklung von Fähigkeiten: Zusätzliche Schulungen können erforderlich sein, wenn es darum geht, eine bestehende Anwendung in eine Stream-Processing-Infrastruktur zu verschieben. Sie sollten sicherstellen, dass die Teammitglieder über Trainingsressourcen, verfügbare Dokumentationen, relevante Veranstaltungen und Trainingsprogramme informiert werden, damit sie wissen, wo sie Informationen finden.
  • Datenaufbereitung: Stellen Sie sicher, dass die Daten für die Übertragung in eine Streaming-Infrastruktur vorbereitet sind. Daten an einer Stream-Processing-Schnittstelle sind nicht im Ruhezustand („at-rest“), sondern in Bewegung („in-flight“). Daher müssen alle Datenquellen entsprechend konfiguriert sein, um eine maximale Nutzung der Leistungsfähigkeit der Stream-Verarbeitung durch die vorgesehenen Anwendungen zu gewährleisten.
  • POC (Proof-of-Concept): Bei bestehenden Anwendungen sollten Sie mit einer POC-Phase (Proof-of-Concept) starten, bevor eine Anwendung auf die vollständige Stream-Verarbeitung umgestellt wird. So lassen sich frühzeitig Engpässe oder Probleme aufdecken, um diese in einer späteren Produktionsphase effizient angehen zu können.

Entwickler müssen in einem neuen Umgang mit Daten geschult werden. So werden Daten in einer Stream-Processing-Anwendung kontinuierlich produziert und müssen kontinuierlich verarbeitet werden. Darüber hinaus gilt es für Entwickler, ihre Denkweise von einem „Keeping the Data Store“-Modus auf einen „Quick Response to Events“-Modus umzustellen.

Wenn es um Systemfehler oder Bugfixes geht, muss ein Entwickler anstelle eines Datenspeichers das Protokoll der Ereignisse durchgehen, um die Ursache für einen solchen Fehler zu finden. Vor allem sollten sie in der Lage sein, in einer neuen Art und Weise auf Daten zu reagieren, da die Dateninfrastruktur nun zum zentralen Nervensystem des Unternehmens wird. Genau dies ermöglicht Echtzeitreaktionen, Analysen, Einblicke und personalisierte Erfahrungen für den Kundenstamm des Unternehmens, was letztlich das Ziel von Data Streaming ist.

Stephan Ewen
Stephan Ewen (Bild: data Artisans)

Der Übergang zu einer Datenarchitektur für die Verarbeitung von Ereignisströmen ist ein Prozess, der über technische und systemrelevante Änderungen hinausgeht. Entwicklungsteamleiter und Engineering-Manager müssen sicherstellen, dass „Event Stream Processing“ in die Denkweise ihres Unternehmens eingebettet ist. Wichtig ist daher: Die Umstellung auf die Stream-Verarbeitung ist ein ebenso technischer wie kultureller und fachlicher Prozess.

* Dr. Stephan Ewen ist PMC-Mitglied von Apache Flink und Mitbegründer und CTO von data Artisans. Vor der Gründung von data Artisans hat er von Beginn an bei der Entwicklung von Apache Flink, damals noch Stratosphere, mitgewirkt.

Kommentare werden geladen....

Kommentar zu diesem Artikel

Der Kommentar wird durch einen Redakteur geprüft und in Kürze freigeschaltet.

Anonym mitdiskutieren oder einloggen Anmelden

Avatar
Zur Wahrung unserer Interessen speichern wir zusätzlich zu den o.g. Informationen die IP-Adresse. Dies dient ausschließlich dem Zweck, dass Sie als Urheber des Kommentars identifiziert werden können. Rechtliche Grundlage ist die Wahrung berechtigter Interessen gem. Art 6 Abs 1 lit. f) DSGVO.
  1. Avatar
    Avatar
    Bearbeitet von am
    Bearbeitet von am
    1. Avatar
      Avatar
      Bearbeitet von am
      Bearbeitet von am

Kommentare werden geladen....

Kommentar melden

Melden Sie diesen Kommentar, wenn dieser nicht den Richtlinien entspricht.

Kommentar Freigeben

Der untenstehende Text wird an den Kommentator gesendet, falls dieser eine Email-hinterlegt hat.

Freigabe entfernen

Der untenstehende Text wird an den Kommentator gesendet, falls dieser eine Email-hinterlegt hat.

copyright

Dieser Beitrag ist urheberrechtlich geschützt. Sie wollen ihn für Ihre Zwecke verwenden? Kontaktieren Sie uns über: support.vogel.de/ (ID: 45591306 / Datenbanken)