Was bedeutet "Streaming" in Apache Spark und Apache Flink?

9

Als ich zur Webseite von Apache Spark Streaming ging, sah ich einen Satz:

  

Spark Streaming macht es einfach, skalierbare fehlertolerante Streaming-Anwendungen zu erstellen.

Und in der Apache Flink Website gibt es einen Satz:

  

Apache Flink ist eine Open-Source-Plattform für skalierbare Batch- und Stream-Datenverarbeitung.

Was bedeutet streaming application und batch data processing , stream data processing ? Können Sie einige konkrete Beispiele nennen? Sind sie für Sensordaten ausgelegt?

    
xirururu 30.06.2015, 10:13
quelle

1 Antwort

8

Streaming-Datenanalyse bezieht sich (im Gegensatz zur "Batch" -Datenanalyse) auf eine kontinuierliche Analyse eines typischerweise unendlichen Stroms von Datenelementen (oft als Ereignisse bezeichnet).

Eigenschaften von Streaming-Anwendungen

Stream-Datenverarbeitungsanwendungen zeichnen sich typischerweise durch die folgenden Punkte aus:

  • Streaming-Anwendungen werden kontinuierlich für eine sehr lange Zeit ausgeführt und verarbeiten und verarbeiten Ereignisse, sobald sie auftreten. Im Gegensatz. Batch-Anwendungen sammeln Daten in Dateien oder Datenbanken und verarbeiten sie später.

  • Streaming-Anwendungen beschäftigen sich häufig mit der Latenz von Ergebnissen. Die Latenz ist die Verzögerung zwischen der Erstellung eines Ereignisses und dem Zeitpunkt, an dem die Analyseanwendung dieses Ereignis berücksichtigt hat.

  • Da Streams unendlich sind, können sich viele Berechnungen nicht auf den gesamten Stream beziehen, sondern auf ein "Fenster" über den Stream. Ein Fenster ist eine Ansicht einer Untersequenz der Stream-Ereignisse (z. B. die letzten 5 Minuten). Ein Beispiel für eine reale Fensterstatistik ist der "durchschnittliche Aktienkurs der letzten 3 Tage" .

  • In Streaming-Anwendungen spielt oft die Zeit eines Ereignisses eine besondere Rolle. Ereignisse in Bezug auf ihre zeitliche Reihenfolge zu interpretieren ist sehr üblich. Während bestimmte Batch-Anwendungen dies auch tun können, ist es kein Kernkonzept dort.

Beispiele für Streaming-Anwendungen

Typische Beispiele für Stream-Datenverarbeitungsanwendungen sind

  • Betrugserkennung: Die Anwendung versucht herauszufinden, ob eine Transaktion mit dem zuvor beobachteten Verhalten übereinstimmt. Wenn dies nicht der Fall ist, kann die Transaktion einen versuchten Missbrauch anzeigen. In der Regel sehr latenzkritische Anwendung.

  • Anomalie-Erkennung: Die Streaming-Anwendung erstellt ein statistisches Modell der beobachteten Ereignisse. Ausreißer weisen auf Anomalien hin und können Warnungen auslösen. Sensordaten können eine Quelle von Ereignissen sein, die auf Anomalien analysiert werden sollen.

  • Online-Empfehler: Wenn nicht viele vergangene Verhaltensinformationen für einen Benutzer verfügbar sind, der einen Webshop besucht, ist es interessant, von ihrem Verhalten zu lernen, während sie die Seiten navigiert und Artikel erforscht und damit beginnt, einige zu generieren erste Empfehlungen direkt.

  • Aktuelles Data Warehousing: Es gibt interessante Artikel darüber, wie eine Data Warehousing-Infrastruktur als Streaming-Anwendung modelliert werden kann, wobei der Ereignisstrom eine Sequenz von Änderungen an der Datenbank darstellt und die Streaming-Anwendung verschiedene Warehouses berechnet als spezialisierte "Aggregatansichten" des Ereignisstroms.

  • Es gibt viele mehr ...

Stephan Ewen 30.06.2015, 17:00
quelle