Apache Beam admite múltiples backends de ejecución, incluidos Apache Spark y Flink. Estoy familiarizado con Spark / Flink y estoy tratando de ver los pros / contras de Beam para el procesamiento por lotes.
Mirando el ejemplo del recuento de palabras de Beam , parece que es muy similar a los equivalentes nativos de Spark / Flink, tal vez con una sintaxis un poco más detallada.
Actualmente no veo un gran beneficio de elegir Beam sobre Spark / Flink para tal tarea. Las únicas observaciones que puedo hacer hasta ahora:
- Ventaja: abstracción sobre diferentes backends de ejecución.
- Desventaja: Esta abstracción tiene el precio de tener menos control sobre lo que se ejecuta exactamente en Spark / Flink.
¿Hay mejores ejemplos que destaquen otros pros / contras del modelo Beam? ¿Existe alguna información sobre cómo afecta la pérdida de control al rendimiento?
Tenga en cuenta que no estoy pidiendo diferencias en los aspectos de transmisión, que se tratan en parte en esta pregunta y se resumen en este artículo (obsoleto debido a Spark 1.X).