A B C D K M N O P R S U V W
Da Di

Data Streaming

Definition: Was ist Data Streaming?

Data Streaming – auch bekannt als Streaming Data – bedeutet übersetzt „Datenstrom“. Unter Data Streaming versteht man einen kontinuierlichen Fluss von vielen Datensätzen, die zu tausenden von einer oder mehreren Datenquellen (Datenproduzenten) generiert werden. Simultant werden solche Datenquellen in kleinen Datenpaketen zum Datenstromempfänger geschickt und in nahezu Echtzeit von diesem verarbeitet.

Die fortlaufend gesendeten Datenpakete eines Datenstroms enthalten typischerweise eine zeitliche, sowie zusätzliche Informationen, die mittels speziellen und eigens auf diesen Daten zugeschnittenen Anwendungen verarbeitet werden.

Anwendungbeispiele von Streaming Data

Streaming-Daten sind heute allgegenwärtig. Die typischen Datenproduzenten sind IoT-Devices, internetfähige Sensoren und Maschinen, sowie sonstige smarte Anwendungen auf stationären und mobilen Endgeräten, die in Echtzeit Aktivitäts- oder sonstige Ereignis-Daten senden und wo die Verarbeitung dieser Informationen eine niedrige Latenz voraussetzt (mehr zum Thema „Latenzen“ lesen Sie in unserem Exkurs).

Die Variation der Datenstrukturen kennt hierbei keine Grenzen und hängt maßgeblich von Anwendungszweck ab. Deshalb werden strukturierte, semi-strukturierte oder gar unstrukturierte Daten mit den entsprechenden Streaming-Data-Lösungen im alltäglichen Leben verarbeitet.

Da die Verbreitung von vernetzten Anwendungen und Geräten, die in Echtzeit kommunizieren, stetig zugenommen hat, ist die Bedeutung von die Streaming Data stetig gewachsen.

In den letzten Jahren spielt darüber hinaus auch das Thema Real-Time-Marketing eine immer größere Rolle. Real-Time Marketing bietet die Möglichkeit in Echtzeit mit den Kunden zu kommunizieren, in dem zeitnah auf die Aktivität der Kunden reagiert werden kann. Hierzu müssen die Aktivitäten der Kunden über die diversen Kanäle wie Mobile-Anwendungen (Apps), Events auf Webseiten sowie Social-Media-Plattformen erfasst und in Echtzeit analysiert und verarbeitet werden. Real-Time-Marketing bietet viele, wichtige und vor allem nützliche Anwendungsszenarien:

  • Kundensegmentierung: Hierbei wird der Kunde anhand diverser Merkmale in Echtzeit klassifiziert (bzw. einer Zielgruppe zugeordnet), um diesen Kunden besser einschätzen zu können und ihn mit spezifischen Bedürfnissen in Echtzeit anzusprechen, um diesen stärker ans Unternehmen zu binden.
  • Next Best Offer: Berechnung und Ausspielung des relevantesten Angebots für den Kunden, was eine höhere Kaufwahrscheinlichkeit verspricht.
  • Verbesserung des Kundenerlebnisses: Es existieren viele Szenarien, wie das Kundenerlebnis verbessert und damit die Kundenmehrwerte in Echtzeit generiert werden kann – dank der zugrunde liegenden Technologie von Data Streaming.

Batch-Verarbeitung vs. Realtime-Streaming-Data

Bei einer Batch-Verarbeitung werden Daten stapelweise verarbeitet. Das heißt, hier werden die Daten sequenziell in einzelnen Stapeln heruntergeladen, um sie dann vollständig zu verarbeiten. In der Regel wird eine Batch-Verarbeitung zeitgesteuert oder bei Erreichung einer vorher festgelegten Datenmenge im Quellsystem gestartet. Ein typischer Anwendungsbereich von Batch-Verfahren sind die nächtlichen Datenbeladungsvorgänge bei Data-Warehouse-Systemen.

Im Gegensatz zum Batch-Verfahren geschieht die Verarbeitung bei Data Streaming unmittelbar. Das heißt, sobald nur ein Datenpaket beim Datenempfänger ankommt, wird die Daten-Verarbeitung unmittelbar gestartet. Da mehrere Daten nahezu gleichzeitig ankommen können und die Daten-Verarbeitung eine gewisse Zeit dauern kann, muss sichergestellt werden, dass die Datenverarbeitung parallel erfolgt. Diese Parallelität bei der Verarbeitung ist ein weiterer wesentlicher Unterschied zum Batch-Verfahren, wo die Daten vom Grundsatz her sequenziell verarbeitet werden.

Natives Streaming vs. Micro-Batches

Streaming ist nicht gleich Streaming!

Wie diese Aussage bereits impliziert, muss man beim Thema Streaming Data vorsichtig sein. Häufig werden diverse streamingfähige Plattformen vermarket, die ein unterschiedliches Verständnis von Streaming haben.

1. Natives Streaming

Wie oben bereits erwähnt, verstehen wir unter Streaming die unmittelbare Verarbeitung eines Datenpaketes, bei seiner Ankunft beim Empfänger. Diese Form der Datenverarbeitung nennt man im Allgemeinen auch natives Streaming.

Natives Streaming hat den Vorteil, dass die Verarbeitung eines ankommenden Datenpaketes unmittelbar erfolgt und es praktisch keine Verzögerung gibt. Dadurch lassen sich Anwendungen entwickeln, die nach dem allgemeinen Verständnis echtzeitfähig sind.

Natives Streaming hat jedoch auch einen großen Nachteil. Bei vielen nahezu gleichzeitig ankommenden Datenpaketen kann nur noch eingeschränkt die parallele Verarbeitung gewährleistet werden. Wenn Sie beispielweise eine beliebte Anwendung entwickeln, die Datenverarbeitung in Echtzeit benötigt und Millionen von Anwendern sie weltweit nutzen, so müssen Sie als App-Entwickler sicherstellen, dass ihre Datenverarbeitungsplattform auch in der Lage ist diese Menge an Datenpaketen gleichzeitig zu verarbeiten. Für diesen extremen Use Case bräuchten Sie einen Cluster-Verband an Rechnern die zusammen tausende Prozessor-Kernen bereitstellen, auf welchen dann die Verarbeitung der Datenpakete parallel erfolgen kann.

2. Micro-Batches

Batch-Verfahren haben hier einen entscheidenden Vorteil. Wie oben bereits erwähnt, werden Daten in einzelnen Stapeln verarbeitet, wobei ein Stapel tausende Datensätze enthalten kann. Da viele Daten auf einmal in Stapeln verarbeitet werden, ist in der Regel eine weniger große Skalierung der Hardware notwendig, um die gleiche Datenmenge zu verarbeiten. Jedoch hat diese Lösung den Nachteil, dass die Verarbeitung eines Datenpaketes nicht mehr unmittelbar erfolgt.

Der Kompromiss aus diesen zwei Welten sind Micro-Batches. Beim Micro-Batch-Verfahren werden die ankommenden Daten aus einer Streaming-Pipeline in sehr kurzen Zeitabständen (von weniger als einer Sekunde bis maximal 5 Sekunden) in kleine Batches (die sogenannten Micro-Batches) gruppiert. Anschließend werden diese Micro-Batches verarbeitet. Diese Micro-Batches sind natürlich nur für Anwendungen geeignet, wo eine kleine Verzögerung von wenigen Sekunden verschmerzbar ist.

Data Streaming_CINTELLIC-Wiki_Transferzeit_Latenzen

Vorteile von Streaming Data

1. Echtzeit-Verarbeitung: Streaming-Data-Systeme ermöglichen die Echtzeit-Verarbeitung von Daten. Das bedeutet, dass Daten nahezu sofort nach der Erstellung verarbeitet werden können, anstatt auf eine Batch-Verarbeitung zu warten.

2. Aktualität: Durch die Echtzeit-Verarbeitung können Unternehmen schnell auf  Veränderungen in ihren Daten reagieren. Dies kann für Wettbewerbsvorteile sorgen, indem schnelle Entscheidungen getroffen werden können.

3. Skalierbarkeit: Streaming-Data-Systeme können skalieren, um große Mengen an Daten in Echtzeit zu verarbeiten. Dies bedeutet, dass Unternehmen schnell auf Änderungen in der Datenmenge reagieren können.

4. Kosteneffizienz: Da Daten sofort verarbeitet werden können, müssen Unternehmen nicht so viele Ressourcen aufwenden, um Daten zu speichern und später zu verarbeiten.

5. Flexibilität: Streaming-Data-Systeme sind flexibel und können an verschiedene Datenquellen angepasst werden. Dies bedeutet, dass Unternehmen Daten aus verschiedenen Quellen integrieren und analysieren können.

Nachteile von Streaming Data

1. Komplexität: Streaming-Data-Systeme sind oft komplex und erfordern spezialisierte Kenntnisse, um sie zu implementieren und zu betreiben.

2. Fehlertoleranz: Streaming-Data-Systeme müssen fehlertolerant sein, da Daten in Echtzeit verarbeitet werden. Wenn ein Fehler auftritt, kann dies zu Datenverlust führen.

3. Latenz: Obwohl Streaming-Data-Systeme in der Regel schneller als Batch-Verarbeitung sind, kann es – je nach System – immer noch zu einer gewissen Verzögerung kommen.

4. Skalierbarkeit: Während Streaming-Data-Systeme in der Regel skalierbar sind, kann die Skalierung teuer sein und erfordert möglicherweise zusätzliche Ressourcen.

5. Datensicherheit: Streaming-Data-Systeme erfordern besondere Aufmerksamkeit in Bezug auf die Datensicherheit. Es ist wichtig, dass Daten während der Verarbeitung sicher sind.

Exkurs: Transferzeit (Latenzen)

Latenzen können beim Streaming ein großes Problem werden. Sobald man von seinem internetfähigen Endgerät eine Anfrage zu einem entfernten Server stellt, wird eine kurze Zeit benötigt, bis diese Anfrage dort ankommt. Diese Transferzeit, die häufig nur wenige Millisekunden beträgt, nennt man im Allgemeinen Latenz. Diese Latenz hängt maßgeblich vom Routing der zwischengeschalteten Internetprovider und der damit verbundenen Datenstreckenlänge ab. Das heißt, wenn Datenpakte zu einem Rechenzentrum in geografischer Nähe geschickt werden, kommen diese dort in der Regel schneller an, als bei einem Rechenzentrum auf der anderen Seite der Erdhalbkugel.

Um die Latenzen zu reduzieren, gibt es zwei wesentliche Ansatzpunkte, die bei einer Streaming-Daten-Plattform beachtet werden sollten:

1. Um die Latenzen möglichst niedrig zu halten, sollte sichergestellt sein, dass die Systemarchitektur möglichst in geografischer Nähe zu der Hauptanwendergruppe aufgebaut wird. Wenn jedoch die Anwender sich auf allen Kontinenten dieses Erdballs verteilen, so ist es empfehlenswert die Streaming-Daten-Plattform in all diesen Regionen redundant zur Verfügung zu stellen. Diese Art der Verteilung an unterschiedlichen Standorten nennt man auch Georedundanz.

Tipp: Sobald georedundante Systeme erforderlich sind, sollte man die Nutzung von Cloud-Services in Erwägung ziehen. Die großen Cloud-Anbieter bieten jeweils eigene Data-Streaming-Services an verbunden. Diese Services sind georedundant und garantieren somit in fast allen Regionen dieser Erde niedrige Latenzen.

2. Latenzen entstehen immer bei einem Datenaustausch zwischen zwei hardwaretechnisch getrennten Computersystemen. Aus diesem Grund sollte sichergestellt werden, dass die Systemarchitektur für die Verarbeitung der Streaming-Daten so geplant wird, dass die Datenaustausch-Aktivitäten zwischen den unterschiedlichen Computersystemen erfolgen muss. Es sollte darüber hinaus bei der Verarbeitung der Datenpakete sichergestellt werden, dass die Streaming-Plattform und die damit zusammenhängenden Services auf anderen Server (Beispiel Datenbankserver) in kurzer räumlicher Entfernen (am besten im gleichen Raum/Rechenzentrum) zueinander stehen.

Data Streaming_CINTELLIC-Wiki_Streaming Data
CINTELLIC Consulting - Social Media