Suchen

Definition Was ist Stream Processing?

| Autor / Redakteur: Dipl.-Ing. (FH) Stefan Luber / Nico Litzel

Stream Processing ist ein alternativer Ansatz zum Batch Processing. Daten werden nicht erst zwischengespeichert, sondern direkt nach ihrer Entstehung oder ihrem Empfang in nahezu Echtzeit kontinuierlich verarbeitet und analysiert. Stream Processing kommt beispielsweise im Big-Data-Umfeld oder in digitalisierten Prozessen der Industrie 4.0 zum Einsatz.

Firma zum Thema

(Bild: © aga7ta - stock.adobe.com)

Teilweise alternativ genutzte Begriffe für Stream Processing sind Real-Time-Analyse, Stream Analyse, Event Processing oder Data-in-Motion-Processing. Es handelt sich um eine Datenverarbeitungsmethode, die einen gegensätzlichen Ansatz im Vergleich zum Batch Processing verfolgt. Anstatt Daten zunächst zu sammeln, in Datenbanken zu speichern und erst im Nachgang bei Bedarf zu verarbeiten oder zu analysieren, ermöglicht das Stream Processing die Verarbeitung und Analyse von Daten nahezu in Echtzeit.

Die Daten werden direkt nach ihrer Entstehung oder ihrem Empfang mit minimaler zeitlicher Verzögerung prozessiert. Je nach Anwendung handelt es sich bei der Verzögerung um nur einige Millisekunden oder wenige Minuten. Ein empfangener Datenstream kann beispielsweise Aktionen triggern, Statistiken updaten oder neue Datenstreams erzeugen.

Typische Anwendungsbereiche sind das Big-Data-Umfeld, digitalisierte Prozesse der Industrie 4.0, das Internet der Dinge (IoT – Internet of Things), Live-Webseitenauswertungen oder die Live-Reaktion auf Logdaten. Es existieren zahlreiche Softwarelösungen für das Stream Processing wie Apache Flink, Apache Spark, Apache Storm, Kafka Streams, AWS Kinesis, Google Cloud Dataflow oder Microsoft Azure Stream Analytics.

Gründe für das Stream Processing

Durch eine steigende Anzahl von Datenquellen, die kontinuierlich zu analysierende Daten liefern, stößt das Prinzip des Batch Processings an seine Grenzen. Unternehmen sind mit ihren digitalen Prozessen darauf angewiesen, Daten in Echtzeit zu verarbeiten und binnen kurzer Zeit angemessen auf Analyseergebnisse zu reagieren. Je mehr Zeit zwischen der Datenentstehung oder dem Datenerhalt und der Auswertung der Daten liegt, desto geringer ist der Wert der Analyseergebnisse. Zudem erzeugt die Zwischenspeicherung großer Mengen an Daten einen riesigen Bedarf an Ressourcen und Speicherbedarf für Datenbanksysteme. Dynamische Markt- und Produktionsprozesse erwarten zeitnahe Auswertungen in Echtzeit. Stream Processing muss im Gegensatz zum Batch Processing kontinuierliche Datenströme nicht unterbrechen und Daten anschließend wieder aufwendig aggregieren, sondern erzeugt einen kontinuierlichen Ergebnis-Output.

Abgrenzung vom Batch Processing

Klassische Datenverarbeitungsprozesse nutzen das sogenannte Batch Processing. Die deutsche Übersetzung für Batch Processing lautet Stapelverarbeitung. Beim Batch Processing werden Daten nach ihrer Entstehung oder ihrem Erhalt zunächst von einer Eingangslogik sortiert und gegebenenfalls strukturiert. Anschließend erfolgt die Ablage in einer Datenbank. Dort verbleiben die Daten, bis eine Weiterverarbeitung oder eine Analyse der Daten notwendig wird. Die Ausgangslogik entnimmt die benötigten Daten zu einem definierten Zeitpunkt und führt sie der Analyselogik oder der weiterverarbeitenden Anwendung zu. Die erhaltenen Ergebnisse sind nicht echtzeitfähig und basieren immer auf einem historischen Datenbestand zu einem bestimmten Zeitpunkt. Während der Analyse oder der Weiterverarbeitung erhaltene Daten fließen nicht in die Analyseprozesse ein und können erst wieder zu einem späteren Zeitpunkt berücksichtigt werden.

Funktionsprinzip des Stream Processings

Basis des Stream Processings sind kontinuierliche Datenströme. Datenquellen, wie Sensoren, erzeugen einen ständigen Datenstrom in einem bestimmten Datenformat. Der Datenstrom besteht aus Einzeldaten oder kleineren Paketen mit mehreren Daten. Wie viele Daten in die Pakete gefüllt werden, kann zeit- oder mengenabhängig sein. Empfänger wie Analyseanwendungen nehmen den Datenstrom entgegen und verarbeiten ihn. Hierbei lassen sich das sogenannte native Streaming und Micro-Batching unterscheiden. Native Streaming verarbeitet jeden Datensatz sofort, ohne auf weitere Datensätze zu warten. Micro-Batching hingegen sammelt Daten über kurze Zeitabstände (Zeitfenster) und führt anschließend die Weiterverarbeitung durch.

Native Streaming bietet den Vorteil niedrigerer Latenzzeiten und kürzerer Reaktionszeiten auf eingehende Daten. In einigen Bereichen kommt Batch Processing und Stream Processing in einer Mischkonstellation zum Einsatz. Die Datenverarbeitung erfolgt zweigeteilt. Eine Batch-Ebene speichert zeitunkritische Daten und analysiert sie erst zu einem späteren Zeitpunkt, während eine Stream-Ebene die erhaltenen zeitkritische Daten direkt auswertet.

Vorteile des Stream Processings

Stream Processing bietet gegenüber dem herkömmlichen Batch Processing zahlreiche Vorteile. Unternehmen können in Echtzeit auf Ereignisse reagieren. Der Speicherbedarf ist wesentlich niedriger als beim Batch Processing, da Daten zunächst verarbeitet werden und nur bedeutsame Teilbereiche der Daten oder Ergebnisse zu speichern sind. Zudem entspricht das Stream Processing eher dem Charakter der Datenentstehung, die in der Regel kontinuierlich in einem permanenten Datenstrom erfolgt. Datenströme müssen für die Verarbeitung nicht mehr unterbrochen werden.

Verfügbare Stream-Processing-Technologien

Es existieren zahlreiche Technologien und Services für das Stream Processing. So lassen sich beispielsweise die Open-Source-Lösungen von Apache wie Apache Spark, Apache Storm, Apache Flink und Kafka Streams für das Stream Processing verwenden. Darüber hinaus sind kommerzielle Lösungen von fast allen namhaften Anbietern des Cloud Computings verfügbar. Dazu zählen Amazon Web Services mit AWS Kinesis, Google Cloud mit Cloud Dataflow und Microsoft Cloud mit Azure Stream Analytics.

Typische Anwendungsbereiche des Stream Processings

Anwendungsmöglichkeiten für das Stream Processing ergeben sich im Bereich Künstlicher Intelligenz (KI), maschinellen Lernens, Big Data, Industrie 4.0, Internet der Dinge und anderen Bereichen. Im Folgenden einige typische Anwendungsbereiche.

  • Echtzeit-Analyse des Kundenverhaltens im E-Commerce
  • Trigger-Marketing-Kampagnen
  • Analysen von Finanztransaktionen
  • Patientenüberwachung im Gesundheitswesen
  • Monitoring von Produktionsprozessen
  • Optimierung von Logistikketten
  • Intrusion Detection
  • autonomes Fahren
  • Smart Grids
  • Verkehrsüberwachung
  • Userverhalten-bezogene oder Aktions-basierte Werbung
  • Vorausschauende Wartung und Instandhaltung (Predictive Maintenance)

(ID:46127478)

Über den Autor