Apache Beam unterstützt mehrere Runner-Backends, einschließlich Apache Spark und Flink. Ich bin mit Spark / Flink vertraut und versuche, die Vor- und Nachteile von Beam für die Stapelverarbeitung zu erkennen.
Wenn man sich das Beispiel für die Anzahl der Beam-Wörter ansieht , scheint es den nativen Spark / Flink-Äquivalenten sehr ähnlich zu sein, möglicherweise mit einer etwas ausführlicheren Syntax.
Ich sehe derzeit keinen großen Vorteil darin, Beam für eine solche Aufgabe gegenüber Spark / Flink zu wählen. Die einzigen Beobachtungen, die ich bisher machen kann:
- Pro: Abstraktion über verschiedene Ausführungs-Backends.
- Con: Diese Abstraktion hat den Preis, weniger Kontrolle darüber zu haben, was genau in Spark / Flink ausgeführt wird.
Gibt es bessere Beispiele, die andere Vor- und Nachteile des Beam-Modells hervorheben? Gibt es Informationen darüber, wie sich der Kontrollverlust auf die Leistung auswirkt?
Beachten Sie, dass ich nicht nach Unterschieden bei den Streaming-Aspekten frage , die teilweise in dieser Frage behandelt und in diesem Artikel zusammengefasst werden (aufgrund von Spark 1.X veraltet).