Apache Beam obsługuje wiele backendów runner, w tym Apache Spark i Flink. Znam Spark / Flink i próbuję zobaczyć zalety / wady Beam do przetwarzania wsadowego.
Patrząc na przykład liczby słów Beam , wydaje się, że jest bardzo podobny do rodzimych odpowiedników Spark / Flink, może z nieco bardziej szczegółową składnią.
Obecnie nie widzę dużej korzyści z wyboru Beam over Spark / Flink do takiego zadania. Jedyne obserwacje, jakie mogę poczynić do tej pory:
- Pro: Abstrakcja w stosunku do różnych backendów wykonawczych.
- Wada: ta abstrakcja kosztuje mniejszą kontrolę nad tym, co dokładnie jest wykonywane w Spark / Flink.
Czy są lepsze przykłady, które podkreślają inne zalety / wady modelu Beam? Czy są jakieś informacje, jak utrata kontroli wpływa na wydajność?
Zwróć uwagę, że nie proszę o różnice w aspektach przesyłania strumieniowego, które są częściowo omówione w tym pytaniu i podsumowane w tym artykule (nieaktualne ze względu na Spark 1.X).