ktsdesign - Fotolia
Apache Flink: Stream Processing beschleunigt IoT-Anwendungen
5G und das Internet der Dinge als Top-Themen im Jahr 2019: Was bedeutet das für die Datenverarbeitung und welche Rolle spielt dabei Stream Processing?
Das 5G-Netz ist noch nicht Realität, wird aber kommen, wenn auch erst nach und nach, innerhalb der nächsten Jahre. Der Ausbau soll zunächst in den Ballungsräumen starten. Zwischenzeitlich wächst aber bereits das industrielle Internet der Dinge (IIoT) in schnellen Schritten. Da es flächendeckend noch kein 5G gibt, nutzen Unternehmen andere Konnektivitätsoptionen.
Klar ist aber bereits heute, wohin die Reise geht. Unternehmen werden immer schneller immer mehr Daten erzeugen, darunter Unmengen an Sensordaten. Diese Daten sind nur dann wertvoll, wenn sie nahezu in Echtzeit ausgewertet werden können. Genau an dieser Stelle kommt Stream Processing ins Spiel.
Neuer Ansatz in der Datenverarbeitung
Stream Processing, also Datenstromverarbeitung, ist eine Big-Data-Technologie und steht für einen neuen Ansatz in der Datenverarbeitung. Parallel ist auch von Real-Time Analytics (Echtzeitanalytik), Streaming Analytics oder (Complex) Event Processing, also (komplexer) Ereignisverarbeitung, die Rede. Der grundlegende Ansatz unterscheidet sich von allen bisher verwendeten Technologien zur Datenverarbeitung, insbesondere der herkömmlichen Batch-Verarbeitung, also Stapelverarbeitung.
Klassische Datenbanken müssen Daten zunächst abspeichern, um sie zu verarbeiten. Die heute immensen Datenmengen sind jedoch oft nur kurzfristig im Umlauf und können mengenmäßig gar nicht erst langfristig gespeichert werden. Mittels Stream Processing werden die Daten daher gleich in Bewegung, nahezu in Echtzeit – als Datenstrom – verarbeitet. So lassen sich kontinuierlich zufließende Daten, etwa von Finanztransaktionen, zum Einkaufsverhalten oder von IoT-Sensoren, verarbeiten. Unternehmen können somit unmittelbar auf Ereignisse reagieren, wenn sie stattfinden und kritisch sind.
Apache Flink als schlüsselfertige Lösung
Diesen Wandel in der Datenverarbeitung voranzutreiben, hat sich data Artisans zum Ziel gesetzt. Das Unternehmen wurde von den Entwicklern von Apache Flink, ein mittlerweile weit verbreitetes Stream Processing Framework aus dem Open-Source-Umfeld, gegründet. Apache Flink ist eine schlüsselfertige Lösung für Stream Processing, die globale Unternehmen wie Alibaba, ING, Netflix und Uber einsetzen.
Typische Anwendungsfälle sind Echtzeitanalytik, maschinelles Lernen, Such- und Content-Ranking sowie Betrugserkennung. Der Medienriese Netflix verarbeitet mit Flink mehr als fünf Billionen Ereignisse pro Tag, also mehr als 50 Millionen Ereignisse pro Sekunde, auf Tausenden von Prozessorkernen.
Im Vergleich zu seinen Vorgängern Apache Kafka und Apache Spark wurde Flink von Grund auf als Stream Processing Framework mit hohem Durchsatz, geringer Latenzzeit und exakter Semantik konzipiert. Andere Frameworks, wie Spark, gingen aus der Batch-Verarbeitung hervor, oder die Datenstromverarbeitung wurde erst später ergänzt, wie bei Kafka. Apache Flink profitiert somit von der Gunst der jüngsten Entwicklung und setzt sich immer mehr durch.
Stream Processing gewinnt an Bedeutung
Mit dem Wachstum des industriellen Internets der Dinge und dem Aufbau des 5G-Netzes dürfte Stream Processing weiter an Bedeutung gewinnen. Industrielle IoT-Anwendungen sind auf Echtzeit-Informationen angewiesen, um gegebenenfalls sofortige Maßnahmen einzuleiten.
Ein Beispiel: Eine Windradturbine funktioniert nicht wie vorgesehen trotz ausreichender Windstärke. Der Energieversorger muss diese Informationen sofort bekommen, um sie in Echtzeit auszuwerten oder anhand von Algorithmen unmittelbar Aktionen auslösen zu können. Die Verarbeitung von Echtzeit-Datenströmen anstelle von periodisch übertragenen Datensätzen ermöglicht es, Berechnungen sofort bei der Verfügbarkeit von Daten durchzuführen, zeitnahe Warnungen auszulösen oder Ereignismuster kontinuierlich zu erkennen.
Wenn Daten von IoT-Geräten über ein Mobilfunknetz übertragen werden, ist es wichtig, Latenzzeiten und Netzwerkausfälle zu berücksichtigen. Selbst wenn über eine stabilere Verbindung gesendet wird, erhöht die Entfernung der Geräte vom Rechenzentrum zwangsläufig die Latenzzeit. Bei IoT-Daten kann es daher sinnvoll sein, Ereignisse nach dem Zeitpunkt ihres Auftretens und nicht nach dem Zeitpunkt ihrer Ankunft im Rechenzentrum zu verarbeiten. Aus diesem Grund ist die Unterstützung der Ereigniszeit ein wichtiger Aspekt, wenn Datenverarbeitungs-Frameworks evaluiert werden.
Nützliche Tools, um Herausforderungen zu meistern
Stream Processing bietet einige nützliche Tools, darunter Windowing, ein Konzept, bei dem die Elemente eines unbegrenzten Stroms für die weitere Verarbeitung in endliche Mengen gruppiert werden, basierend auf Dimensionen wie Zeit oder Anzahl der Elemente. Apache Flink ermöglicht es hier, die zulässige Verspätung von Elementen festzulegen und stellt Seitenausgänge zur Verfügung, um später auftretende Ereignisse zu behandeln.
„Im Vergleich zu seinen Vorgängern Apache Kafka und Apache Spark wurde Flink von Grund auf als Stream Processing Framework mit hohem Durchsatz, geringer Latenzzeit und exakter Semantik konzipiert.“
Dr. Stephan Ewen, data Artisans
Häufig sollen in einer IoT-Anwendung Berechnungen nur an einer Teilmenge von Daten durchgeführt werden. Apache Flink unterstützt hierbei die Gruppierung nach Schlüsselwerten. Sobald ein Stream partitioniert ist, kann er parallel verarbeitet werden. Ein Schlüsselwert muss dabei nicht an ein einzelnes IoT-Gerät oder einen Standort gebunden sein. Mit Apache Flink lassen sich Daten zudem genau dort aufbewahren, wo Berechnungen mit dem lokalen Zustand durchgeführt werden. Noch wichtiger ist, dass sich der Zustand einer Anwendung durch einen effizienten Checkpointing-Mechanismus im Fehlerfall wieder konsistent herstellen lässt.
Wenn Unternehmen eine Stream-Processing-Architektur für ihre IoT-Anwendungen einführen, können sie sich meist nach einer sehr kurzen Eingewöhnungsphase auf die Kernlogik ihrer Anwendung konzentrieren. Der Großteil der groben Arbeit wird vom Framework erledigt. So lassen sich die Herausforderungen meistern, wenn es darum geht, riesige Mengen an IoT-Daten zu bewältigen, die jeden Tag, jede Minute oder Sekunde verarbeitet werden müssen.
Über den Autor:
Dr. Stephan Ewen ist CTO und Co-Founder von data Artisans.