Event Streaming ist die Praxis, Echtzeitdaten von Anwendungen, Datenbanken und IoT-Geräten zu erfassen und sie zur sofortigen Verarbeitung und Speicherung oder für Analysen und Analyseberichte in Echtzeit an verschiedene Ziele zu übertragen.
Als Schlüsselfunktion der Ereignisstromverarbeitung (Event Stream Processing, ESP) ermöglicht Event Streaming IT-Infrastrukturen die Verarbeitung großer, kontinuierlicher Ereignisströme, indem Daten verarbeitet werden, wenn das Ereignis oder die Änderung eintritt.
Event Streaming dient oft als Ergänzung zur Batch-Verarbeitung, die auf große, statische Datensätze (oder „Data at Rest“) angewendet wird. Anstatt Daten jedoch in Batches zu verarbeiten, verarbeitet Event Streaming einzelne Datenpunkte, sobald sie auftauchen. Dieser Ansatz ermöglicht es der Software innerhalb der Architektur, Datenströme („Daten in Bewegung“) in Echtzeit zu interpretieren und darauf zu reagieren.
Leistungsstarke Event-Streaming-Services können eine Reihe einfacher und komplexer Aufgaben übernehmen, von der Versendung von Benachrichtigungen, wenn sich Lagerbestände oder Produktpreise ändern, bis hin zum Aufbau von Echtzeit-Maschinenlernmodellen, die verdächtige Benutzeraktivitäten erkennen. Selbst bei der Stapelverarbeitung kann Event Streaming die Datenanalyse vertiefen, indem Ereignisse mit ihren jeweiligen Zeitstempeln verknüpft werden. Es hilft auch dabei, historische Trends zu erkennen und liefert so im Laufe der Zeit wertvolle Erkenntnisse.
Beim Event Streaming geht es um den unbegrenzten, sequentiellen Fluss von Datensätzen in Echtzeit, genannt „Events“ – grundlegende Datenstrukturen, die jedes Ereignis im System oder in der Umgebung aufzeichnen. Es ist ein Begriff, der sich im Wesentlichen auf jeden Datenpunkt im System bezieht. Daher ist ein „Stream“ (auch Datenstrom oder Streaming-Daten genannt) die kontinuierliche Bereitstellung dieser Ereignisse.
Jedes Ereignis umfasst in der Regel einen Schlüssel, der das Ereignis oder die Entität, auf die es sich bezieht, identifiziert, sowie einen Wert, der die eigentlichen Daten des Ereignisses enthält. Außerdem enthält es einen Zeitstempel, der angibt, wann das Ereignis stattfand oder aufgezeichnet wurde, sowie manchmal Metadaten zur Datenquelle, Schema-Version oder anderen Attributen.
Mit Hilfe spezialisierter Stream-Processing-Engines können Ereignisse innerhalb eines Streams einige verschiedene Prozesse durchlaufen. „Aggregationen“ führen Datenberechnungen durch, wie z. B. Mittelwerte, Summen und Standardabweichungen. Durch „Ingestion“ werden Streaming-Daten in Datenbanken aufgenommen. Die Analyseverarbeitung nutzt Muster in Streaming-Daten, um zukünftige Ereignisse vorherzusagen, und die Anreicherungsverarbeitung kombiniert Datenpunkte mit anderen Datenquellen, um Kontext und Bedeutung zu schaffen.
Ereignisse sind oft mit Geschäftsvorgängen oder Prozessen der Benutzernavigation verbunden und lösen in der Regel eine andere Aktion, einen Prozess oder eine Reihe von Ereignissen aus. Nehmen wir als Beispiel das Online-Banking.
Wenn ein Benutzer auf „Überweisen“ klickt, um Geld von einem Bankkonto auf ein anderes zu überweisen, wird das Geld vom Konto des Absenders abgebucht und dem Bankkonto des Empfängers gutgeschrieben. E-Mail- oder SMS-Benachrichtigungen werden an eine (oder beide) Parteien gesendet, und wenn notwendig, werden Sicherheits- und Betrugspräventionsprotokolle eingesetzt.
Veranstaltungen sind die zentrale Komponente des Event Streamings. Allerdings ermöglicht eine Reihe anderer Komponenten den Streaming-Diensten, Ereignisse so schnell und effektiv zu verarbeiten, wie sie es tun. Zu den weiteren wichtigen Komponenten gehören:
Broker oder Message Broker sind die Server, auf denen Event-Streaming-Plattformen ausgeführt werden. Message Broker ermöglichen es Anwendungen, Systemen und Diensten, miteinander zu kommunizieren und Informationen auszutauschen. Diese Funktionalität erreichen sie durch die Konvertierung von Nachrichten zwischen formalen Messaging-Protokollen. So können voneinander abhängige Services direkt miteinander „sprechen“, auch wenn sie in unterschiedlichen Sprachen (z. B. Java oder Python) geschrieben oder auf unterschiedlichen Plattformen implementiert sind. Es erleichtert auch die Entkopplung von Prozessen und Services innerhalb von Systemen.
Broker können Nachrichten validieren, speichern, weiterleiten und an die entsprechenden Ziele zustellen. In verteilten Event-Streaming-Systemen sorgen Broker für geringe Latenzen und hohe Verfügbarkeit, indem sie Ereignisse über mehrere Knotenpunkte hinweg replizieren. Broker können auch Cluster bilden – Gruppen von Brokern, die zusammenarbeiten, um Lastausgleich und die Skalierbarkeit zu erleichtern.
Themen sind Kategorisierungen oder Feed-Namen, unter denen Ereignisse veröffentlicht werden und die eine Möglichkeit bieten, Ereignisse innerhalb der Plattform zu organisieren und zu filtern. Sie fungieren als „Subjekt“ für Ereignisse und ermöglichen es den Verbrauchern, Themen zu abonnieren und nur relevante Ereignisse zu erhalten.
Themen können weiter in Partitionen unterteilt werden, so dass mehrere Verbraucher gleichzeitig aus einem Thema lesen können, ohne die Reihenfolge der einzelnen Partitionen zu stören.
Ein Offset ist ein eindeutiger Bezeichner für jedes Ereignis innerhalb einer Partition, der die Position eines Ereignisses innerhalb der Sequenz markiert. Verbraucher verwenden Offsets, um die von ihnen verarbeiteten Ereignisse zu organisieren. Wenn ein Verbraucher beispielsweise die Verbindung zu einem Ereignis unterbricht und später wieder aufnimmt, kann er die Verarbeitung ab dem letzten bekannten Offset fortsetzen.
Angesichts der Datenflut – und des daraus resultierenden Anstiegs des Datenverkehrs – ist Event Streaming ein wesentlicher Bestandteil moderner Datenarchitekturen. Es ist besonders hilfreich in Umgebungen, die blitzschnelle Entscheidungsfindung erfordern, oder in Unternehmen, die ihre Entscheidungsprozesse automatisieren wollen.
So verwalten Event-Streaming-Services Ereignisdaten:
Neben Standard-Streaming und -verarbeitung ermöglichen Event-Streaming-Plattformen wie Amazon Kinesis, Google Pub/Sub, Azure Event Hubs und IBM Event Automationeine Reihe von Streaming-Praktiken, die die Funktionalität verbessern. IBM Event Automation, insbesondere, nutzt die Power der Open-Source-Plattform Apache Kafka, um ereignisgesteuerte Workflows zu optimieren.
Die Exactly-Once-Bereitstellungs-Semantik stellt sicher, dass jedes Ereignis in einem Stream genau einmal verarbeitet wird. Dies ist eine wichtige Funktion, um doppelte und verlorene Stream-Ereignisse zu vermeiden. Die meisten Event-Streaming-Systeme enthalten Mechanismen, die unabhängig von Ausfällen an anderen Stellen im System eine Exactly-Once-Semantik bieten.
Wenn nachgelagerte Komponenten nicht mit der eingehenden Ereignisrate mithalten können, verhindert der Gegendruck (Backpressure), dass die Streams das System überwältigen. Mit Backpressure, einem Mechanismus zur Kontrolle des Datenflusses, können Konsumenten den Produzenten signalisieren, die Datenproduktion zu drosseln oder zu stoppen, wenn sie mit der Datenverarbeitung überfordert sind oder mit den eingehenden Ereignissen nicht Schritt halten können.
Dieser Prozess ermöglicht es Systemen, Workloads zu bewältigen, indem eingehende Ereignisse gepuffert oder verworfen werden – anstatt das gesamte System zu unterbrechen –, sodass die Ereignisverarbeitung auch bei schwankenden Workloads stabil bleibt.
Event-Konsumenten arbeiten oft als Teil einer Verbrauchergruppe, um den Event-Konsum zu beschleunigen. Jedem Verbraucher in einer Verbrauchergruppe wird eine Teilmenge von Partitionen zur Verarbeitung zugewiesen, wodurch der Verbrauch für mehr Effizienz parallelisiert wird. Wenn ein Verbraucher innerhalb der Gruppe ausfällt oder hinzugefügt oder entfernt werden muss, kann die Plattform Partitionen dynamisch neu zuweisen, um das Gleichgewicht und die Fehlertoleranz aufrechtzuerhalten.
Event Streaming bedeutet oft eine zeitkritische Verarbeitung von Daten. Durch die Verwendung von Wasserzeichen wird die Fortschrittsverfolgung (mittels Ereigniszeit) in Stream-Processing-Systemen ermöglicht. Es setzt einen Vollständigkeitsschwellenwert durch, der angibt, wann das System die Eventdaten als vollständig verarbeitet betrachten kann. Wasserzeichen können auch nützlich sein, wenn es darum geht, die Genauigkeit bei der zeitbasierten Verarbeitung zu gewährleisten und Ereignisse abzugleichen, die nicht in Ordnung sind.
Die meisten Event-Streaming-Plattformen bieten anpassbare Datenaufbewahrungsrichtlinien, mit denen Entwickler steuern können, wie lange Ereignisse für den Konsum verfügbar sind. Die Datenverdichtung ist jedoch ein Prozess, bei dem redundante oder veraltete Daten aus den Themen entfernt werden, um den Speicherplatzbedarf gering zu halten und gleichzeitig die wesentlichen Daten zu erhalten.
Auch hier ist anzumerken, dass Standard-Streaming-Architekturen in der Regel Ereignisproduzenten, Event Broker und Konsumenten entkoppeln, so dass die Komponenten unabhängig voneinander skaliert und gewartet werden können.
Event Streaming ist ein leistungsfähiges Konzept, das es Unternehmen ermöglicht, Daten zu nutzen, sobald sie generiert werden, und so reaktionsschnellere und intelligentere Systeme zu schaffen. Mit der Zunahme der datengesteuerten Entscheidungsfindung wird das Event Streaming zu einer immer wichtigeren Komponente in modernen Software-Architekturen.
Event-Streaming-Technologien können in verschiedenen Geschäftsbereichen eingesetzt werden, darunter:
Finanzinstitute können Event-Streaming-Services nutzen, um Marktdaten in Echtzeit zu verarbeiten und algorithmische Handelssysteme in die Lage zu versetzen, sekundengenaue Entscheidungen auf der Grundlage aktueller Marktbedingungen zu treffen. Die Echtzeit-Überwachungsfunktionen von Event Streaming helfen Instituten außerdem, Betrugs- und Sicherheitsrisiken schnell zu erkennen und zu bekämpfen.
Event Streaming kann die Optimierung der Lieferkette erleichtern, indem es Herstellern ermöglicht, Materialien und Produkte auf ihrem Weg durch die Lieferkette zu verfolgen, um Engpässe und Prozessineffizienzen zu erkennen. Darüber hinaus können Manager durch Streaming von Daten von IoT-/IIoT-Sensoren an Maschinen vorhersagen, wann und warum Geräte ausfallen könnten, und vorbeugende Wartung oder vorausschauende Wartung durchführen, um ungeplante Ausfallzeiten zu vermeiden.
Online-Gaming-Plattformen können Event-Streaming-Services nutzen, um Aktionen von Spielern und Änderungen des Spielzustands zu verfolgen. Diese können zur Spielanalyse, zur Durchsetzung von Anti-Betrugsrichtlinien und zur Steigerung des Spieler-Engagements genutzt werden. Streaming-Plattformen können Ereignisdaten nutzen, um personalisierte Inhaltsempfehlungen für die Nutzer bereitzustellen und eine maßgeschneiderte Customer Experience zu schaffen.
Event Streaming kann dazu verwendet werden, den Standort und den Status von Fahrzeugen zu verfolgen, was eine Echtzeit-Routenplanung auf der Grundlage von Verkehrsbedingungen, Lieferplänen und Fahrzeugleistung ermöglicht. Logistikunternehmen können auf ähnliche Weise Ereignisdaten von Scannern und GPS-Trackern nutzen, um Kunden in Echtzeit über den Status ihrer E-Commerce-Lieferungen zu informieren.
Abgesehen von bestimmten Branchen kann Event Streaming auch nützlich sein, wenn es in Verbindung mit anderen Technologien und Architekturen eingesetzt wird. So wird Event Streaming manchmal mit Mustern wie Event Sourcing und Command Query Responsibility Segregation (CQRS) in Verbindung gebracht.
Event Sourcing ist ein architektonisches Muster, bei dem Änderungen am Zustand der Anwendung als eine Folge von Ereignissen gespeichert werden. In Verbindung mit Event Streams ermöglicht das Event Sourcing dem Streaming-System, diese Ereignisse wiederzugeben, um den Zustand einer Entität zu einem beliebigen Zeitpunkt zu rekonstruieren oder um andere Komponenten des Systems zu steuern.
Bei einem CQRS-Architekturmuster ist das System in zwei verschiedene Modelle aufgeteilt: eines, das Befehle verarbeitet (Schreiben) und eines, das Abfragen verarbeitet (Lesen). Event Streaming kann in CQRS verwendet werden, um Änderungen vom Schreibmodell in das Lesemodell in Echtzeit zu übertragen und so eine asynchrone Integration zwischen den beiden Modellen zu ermöglichen.
Event Streaming ist auch eine grundlegende Technologie für den Aufbau ereignisgesteuerter Architekturen.
Eine ereignisgesteuerte Architektur ermöglicht es lose gekoppelten Komponenten, durch Ereignisse zu kommunizieren. Anstatt Ströme von Ereignissen an einen Broker zu senden, wird ein einziges Ereignis veröffentlicht, das eine andere App oder ein anderer Dienst verwenden kann, um Aktionen auszuführen. Die In-Stream-Verarbeitungsleistung von ereignisgesteuerten Architekturen –in Verbindung mit Event-Streaming-Funktionen– kann Unternehmen in die Lage versetzen, auf Daten in Bewegung zu reagieren und schnelle Entscheidungen auf der Grundlage aller aktuellen und historischen Daten zu treffen.
In den letzten Jahren haben Cloud-Anbieter (einschließlich IBM Cloud) damit begonnen, die Prinzipien des Event Streaming als Services anzubieten. Event-Streaming-as-a-Service macht es für Unternehmen einfacher, Event-Streaming einzuführen, ohne die gesamte zugrunde liegende Infrastruktur zu verwalten. Das erweitert die Anwendungsfälle von Event-Streaming noch weiter.
IBM Event Automation ist eine modulare Lösung, die Unternehmen dabei hilft, ihre ereignisgesteuerten Aktivitäten mit Funktionen zur Verteilung, Erkennung und Verarbeitung von Ereignissen zu beschleunigen.
Gehen Sie über einfache Aufgabenautomatisierungen hinaus und bewältigen Sie anspruchsvolle, kundenorientierte und umsatzfördernde Prozesse mit integrierter Akzeptanz und Skalierung.
Erfahren Sie, wie KI für den IT-Betrieb die Erkenntnisse liefert, die Sie benötigen, um die Leistung Ihres Unternehmens entscheidend zu verbessern.