Apache Beam é um modelo de programação unificado de código aberto para definir e executar, em paralelo, pipelines para processamento em lote e streaming de dados. O modelo Beam é baseado no modelo Dataflow, que permite expressar lógica de maneira elegante, para que possamos alternar facilmente entre lote, lote com janelas ou streaming. O ecossistema de processamento de big data evoluiu muito, o que pode tornar difícil escolher o mecanismo correto para processamento de dados. Uma das principais razões para escolher o Beam é que ele permite alternância entre diferentes runners – há alguns meses, o Apache Samza foi adicionado a outros runners já suportados, que incluem Apache Spark, Apache Flink e Google Cloud Dataflow. Runners diferentes têm capacidades diferentes e fornecer uma API portátil é uma tarefa difícil. O Beam tenta encontrar um equilíbrio delicado ao colocar as inovações desses runners dentro do modelo Beam e também trabalhar com a comunidade para influenciar o roadmap desses runners. O Beam tem SDKs em múltiplas linguagens, incluindo Java, Python e Golang. Também tivemos sucesso usando Scio, que fornece um empacotador Scala em torno do Beam.
Apache Beam is an open source unified programming model for defining and executing both batch and streaming data-parallel processing pipelines. Beam provides a portable API layer for describing these pipelines independent of execution engines (or runners) such as Apache Spark, Apache Flink or Google Cloud Dataflow. Different runners have different capabilities and providing a portable API is a difficult task. Beam tries to strike a delicate balance by actively pulling innovations from these runners into the Beam model and also working with the community to influence the roadmap of these runners. Beam has a rich set of built-in I/O transformations that cover most of the data pipeline needs and it also provides a mechanism to implement custom transformations for specific use cases. The portable API and extensible IO transformations make a compelling case for assessing Apache Beam for data pipeline needs.