Echtzeit-Analyse dank Data Stream Processing

Streaming-Lösungen

von - 11.01.2019
Weltweites Markrvolumen von Streaming Analytik bis 2021
Quelle: Markets and Markets
Der Markt bietet zahlreiche Plattformen und Frameworks für das Stream Processing an. Auf der einen Seite sind das Open-Source-Tools wie Spark, Storm, Kafka oder Flink – auf der anderen Seite Unternehmenslösungen, die sowohl als Software als auch als Cloud-Dienste zur Verfügung stehen. Viele der Tools sind allerdings auf einen Anwendungsfall oder eine Technologie spezialisiert.
Apache Spark ist momentan eines der beliebtesten Projekte im Data-Streaming-Bereich. Es wurde ursprünglich als Alternative zu Map­Reduce entwickelt – einem von Google entwickelten Framework, mit dem sich große strukturierte oder unstrukturierte Datenmengen mit hoher Geschwindigkeit verarbeiten lassen. Spark, für die klassische Batch-Verarbeitung konzipiert, wurde im Lauf der Zeit um eine Unterstützung für Streaming-Daten erweitert. Hierfür teilt Spark die Datenströme in kleine sogenannte Micro-Batches auf. Laut Alexander Lemm von der Software AG ist das Open-Source-Tool Spark zwar skalierbar, arbeitet aber mit kleinen Datenmengen und ist daher häufig nicht für Echtzeitanwendungen geeignet, bei denen Entscheidungen sehr schnell getroffen werden müssen. Spark eigne sich gut für die Bearbeitung von Streams als Ganzes, „jedoch nicht unbedingt für die Identi­fizierung von Mustern innerhalb einzelner Messages in Streams“.
Storm ist ein weiteres Framework für das Data Stream Processing, das unter dem Dach der Apache Foundation weiterentwickelt wird. Es war eines der ersten Open-Source-Frameworks für das Data Streaming. Ein weiteres Apache-Projekt für die Echtzeitdatenverarbeitung ist Kafka.
Alexander Lemm
Alexander Lemm
Product Manager Predictive Analytics bei der Software AG
Foto: Software AG
„Die Stream-Verarbeitung und das maschinelle Lernen werden sich einander annähern. Sie bilden eine leistungsfähige Kombination (…).“
Das neueste Apache-Projekt für die Echtzeitdatenverarbeitung heißt Flink. Im Unterschied etwa zu Spark oder Kafka wurde Apache Flink von Anfang an für die Datenstromverarbeitung konzipiert. Es entstand an der TU Berlin und bietet mehrere Möglichkeiten der Datenverarbeitung – unter anderem Batch-Streaming oder Machine Learning. Das Projekt hat in letzter Zeit einen deutlichen Schub erhalten, nicht zuletzt aufgrund der besseren Performance im Vergleich zu Spark und wegen seines Fokus auf das Data Streaming. Mehr zu den Unterschieden zwischen Spark und Flink lesen Sie im Interview mit Robert Metzger, Co-Founder und Software Engineer bei Data Artisans, dem Unternehmen hinter Apache Flink, auf Seite 82.
Kommerzielle Lösungen für das Data Streaming gibt es mittlerweile von fast jedem Anbieter von Big-Data- und Business-Intelligence-Tools. Hinzu kommen die Tools der einschlägigen Cloud-Anbieter wie Amazon mit AWS Kinesis, Google mit Cloud Dataflow oder Microsoft mit Azure Stream Analytics.
Wichtige Kriterien bei der Wahl einer Lösung sind Offenheit, Flexibilität und Skalierbarkeit. Eine integrierte analytische Plattform sollte unstrukturierte ebenso wie strukturierte Daten aus unterschiedlichsten Quellen zusammenführen und auswerten können. Schnittstellen sind notwendig, um Daten aus externen Systemen mit einzubinden. Skalierbarkeit ist insofern erforderlich, als die Anforderungen an Datenvolumen ganz unterschiedlich sind: Hin und wieder fallen Datensätze an, die nur einige Byte groß sind,
dafür aber in Abständen von wenigen Millisekunden einfließen. Ein anderes Mal findet in der Edge lediglich die Vorver­arbeitung der Daten statt, die im Anschluss auf einen großen Server übertragen und dort ausgewertet werden.
Doch auch bei den kommerziellen Angeboten - die teilweise ebenfalls auf Open-Source-Anwendungen zurückgreifen - ist die Wahl einer Lösung nicht unbedingt einfach, wie ein Beispiel zeigt: „Im Fall von Internet of Things hat aktuell kein Anbieter eine komplette End-to-End-Lösung von Sensoren über Gateway-Hardware, Enterprise-Message-Bus-Optionen, Data Lake, CEP (Complex Event Processing) oder Stream Processing Engines“, berichtet Frank Waldenburger von Informatica.
Für Unternehmen stellt sich daher die Frage, ob genügend Zeit und Fachwissen vorhanden sind, um aus den verfüg­baren Open-Source-Bausteinen eine eigene Lösung zu entwickeln, oder ob man besser auf ein proprietäres kommerzielles Produkt oder einen Cloud-Dienst setzt.
Wie sollte man als Unternehmen also vorgehen? Cornelius Kimmer von SAS empfiehlt: „Besser als in Tools sollten Unternehmen – grundsätzlich und gerade beim Stream Processing – in Plattformen denken.“
Etwas Ähnliches rät Björn Bartheidel vom IT-Dienstleister Freudenberg IT: „Unternehmen sollten sich nicht zu früh mit konkreten Tools – oder deren Auswahl – beschäftigen, sondern zunächst klare Nutzungskonzepte sowie entsprechende Zielsetzungen und Nutzenerwartungen entwickeln. Die Umsetzung sollte dann Schritt für Schritt erfolgen – immer einhergehend mit der Frage, welche Themen man in den ‚eigenen vier Wänden‘ stemmen kann und an welcher Stelle eine frühe Zusammenarbeit mit den richtigen Partnern sinnvoll sein könnte.“
Letztlich entscheiden laut Stephan Reimann von IBM die Anforderungen des jeweiligen Anwendungsfalles, welche Technologie am besten geeignet ist. Dabei gebe es häufig mehrere gute Lösungen, auch wenn diese teilweise sehr unterschiedlich seien. Sein Tipp: „Anstatt sich auf ein Tool festzulegen, empfiehlt sich die Nutzung einer flexiblen Streaming-Analyse-Plattform, die ausreichend Flexibilität für eine Vielzahl von Anwendungen bereitstellt.“
Verwandte Themen