Big Data Battle: Stapelverarbeitung vs. Stream-Verarbeitung

Versuchen Sie, Big Data und Data Analytics zu verstehen, sind aber mit der Stapelverarbeitung und der Stream-Datenverarbeitung verwechselt? Dann ist dieser Blog genau das Richtige für Sie!

Heutzutage analysieren Entwickler Terabyte und Petabyte an Daten im Hadoop-Ökosystem. Viele Projekte setzen darauf, diese Innovation zu beschleunigen. Alle diese Projekte beruhen auf zwei Aspekten. Sie sind :

  • Stapelverarbeitung
  • Stream-Verarbeitung

Was ist Stapelverarbeitung?

Bei der Stapelverarbeitung werden Datenblöcke verarbeitet, die bereits über einen bestimmten Zeitraum hinweg gespeichert wurden. Zum Beispiel die Verarbeitung aller Transaktionen, die in einer Woche von einem großen Finanzunternehmen durchgeführt wurden. Diese Daten enthalten Millionen von Datensätzen für einen Tag, die als Datei oder Datensatz usw. gespeichert werden können. Diese bestimmte Datei wird am Ende des Tages für verschiedene Analysen verarbeitet, die das Unternehmen durchführen möchte. Offensichtlich wird die Verarbeitung dieser Datei viel Zeit in Anspruch nehmen. Das wäre die Stapelverarbeitung :)

Hadoop MapReduce ist das beste Framework für die Stapelverarbeitung von Daten. In der folgenden Abbildung wird detailliert erläutert, wie Hadoop Daten mit MapReduce verarbeitet.

Daten mit MapReduce verarbeiten

Die Stapelverarbeitung funktioniert gut in Situationen, in denen Sie keine Echtzeit-Analyseergebnisse benötigen und es wichtiger ist, große Datenmengen zu verarbeiten, um detailliertere Einblicke zu erhalten, als schnelle Analyseergebnisse zu erhalten.

Was ist Stream-Verarbeitung?

Die Stream-Verarbeitung ist ein goldener Schlüssel, wenn Sie Analyseergebnisse in Echtzeit erhalten möchten. Die Stream-Verarbeitung ermöglicht es uns, Daten in Echtzeit zu verarbeiten, sobald sie eintreffen, und Bedingungen innerhalb eines kurzen Zeitraums ab dem Zeitpunkt des Datenempfangs schnell zu erkennen. Mit der Stream-Verarbeitung können Sie Daten in Analysetools einspeisen, sobald sie generiert wurden, und sofortige Analyseergebnisse erzielen. Es gibt mehrere Open-Source-Stream-Verarbeitungsplattformen wie Apache Kafka, Apache Flink, Apache Storm, Apache Samza usw. Ich würde WSO2 Stream Processor (WSO2 SP) empfehlen, die Open-Source-Stream-Verarbeitungsplattform, die ich mit aufgebaut habe. WSO2 SP kann Daten von Kafka, HTTP-Anforderungen und Nachrichtenbrokern empfangen. Sie können den Datenstrom in einer "Streaming SQL" -Sprache abfragen. Mit nur zwei Commodity-Servern kann es eine hohe Verfügbarkeit bieten und einen Durchsatz von über 100.000 TPS bewältigen. Es kann bis zu Millionen von TPS auf Kafka skalieren. Darüber hinaus können Sie mit dem Business Rules Manager von WSO2 SP Vorlagen definieren und daraus Geschäftsregeln für verschiedene Szenarien mit gemeinsamen Anforderungen generieren.

Die Stream-Verarbeitung ist nützlich für Aufgaben wie die Betrugserkennung. Wenn Sie Transaktionsdaten streamen, können Sie Anomalien, die auf Betrug hinweisen, in Echtzeit erkennen und betrügerische Transaktionen stoppen, bevor sie abgeschlossen sind.

In der folgenden Abbildung wird detailliert erläutert, wie Spark Daten in Echtzeit verarbeitet.

Der Grund, warum die Streaming-Verarbeitung so schnell ist, besteht darin, dass sie die Daten analysiert, bevor sie auf die Festplatte gelangen.

Zu Ihrer zusätzlichen Information hat WSO2 die WSO2 Fraud Detection Solution eingeführt. Es basiert auf der WSO2 Data Analytics Platform, die sowohl Batch- als auch Echtzeitanalysen (Stream Processing) umfasst.

Unterschied zwischen Stapelverarbeitung und Stream-Verarbeitung

Jetzt haben Sie ein grundlegendes Verständnis für die Stapelverarbeitung und die Stream-Verarbeitung. Lassen Sie uns in die Debatte um Batch vs. Stream eintauchen

Bei der Stapelverarbeitung werden alle oder die meisten Daten verarbeitet, bei der Stream-Verarbeitung jedoch Daten im fortlaufenden Fenster oder im neuesten Datensatz. Die Stapelverarbeitung verarbeitet also einen großen Datenstapel, während die Stream-Verarbeitung einzelne Datensätze oder Mikrostapel mit wenigen Datensätzen verarbeitet.

Im Hinblick auf die Leistung beträgt die Latenz der Stapelverarbeitung einige Minuten bis Stunden, während die Latenz der Stream-Verarbeitung in Sekunden oder Millisekunden angegeben wird.

Letztendlich möchte ein solider Entwickler beide Arbeitsabläufe verstehen. Alles hängt vom Anwendungsfall ab und davon, wie beide Arbeitsabläufe zur Erreichung des Geschäftsziels beitragen.