Apache Beam


Introdução

Apache Beam é um framework que possui como objetivo a unificação de diferentes engines de processamento de dados e SDKs (Software Development Kits), baseado no modelo de Dataflow. Dessa forma, pode-se expressar qualquer pipeline de dados em uma linguagem familiar.


A palavra Beam é derivada dos dois conceitos que o framework unifica: batch e stream processing (batch + stream = beam). Essa unificação, em conjunto com características como execução de pipelines em múltiplos ambientes de desenvolvimento (portabilidade) e suporte de ferramentas desenvolvidas pelo usuário e comunidade (extensível) são os principais motivos para o uso desse framework.



Os SDKs do Apache Beam fornecem um modelo de programção unificado que pode representar e transformar dados de qualquer tamanho, contanto que seja uma quantidade finita de dados de uma fonte batch, ou uma quantidade infinita de uma fonte stream. Os SDKs do Beam usam as mesmas classes para dados finitos e iinfinitos. O Beam atualmente pode ser utilizado com as seguintes linguagens de SDKs:



Os pipeline runners traduzem o pipeline que irá processar os dados que são definidos através do Beam em dados compatíveis com IPA (API). Quando se executa um programa do Beam é necessário especificar um runner apropriado para que seja possível executar o pipeline. O Beam atualmente pode ser utilizado com os seguintes pipeline runners: