Funcionamiento de Apache Beam

Autor: | Última modificación: 8 de marzo de 2023 | Tiempo de Lectura: 2 minutos
Temas en este post:

Algunos de nuestros reconocimientos:

Premios KeepCoding

Apache Beam es un modelo de programación unificado y de código abierto que le permite a los desarrolladores definir y ejecutar pipelines de procesamiento de datos portátiles y escalables en diferentes plataformas y entornos. Fue desarrollado por Google y lanzado como proyecto de código abierto en 2016. Posteriormente, se convirtió en un proyecto de la Fundación Apache en 2017.

En este post, veremos un poco más acerca del funcionamiento de este modelo.

Apache Beam: funcionamiento a nivel práctico

Lo primero que haremos es el import de Apache Beam. En este caso, lo vamos a llamar «beam».

Ahora lo que haremos es generar un pipeline a través de un contexto. Con un contexto de Python (que se realiza con el «with»), lo que se define allí solo se puede utilizar dentro del contexto.

Tenemos el ejemplo de «p». Si ponemos este «p» fuera del «with», ya no existiría. Teniendo esto en cuenta, dentro de este contexto es donde realizamos las transformaciones.

import apache_beam as beam
from apache_beam.options.pipeline_options import PipelineOptions

with beam.Pipeline (options = PipelineOptions ()) as p:
       pass # Build  your pipeline here
Funcionamiento de Apache Beam

Ahora veremos un ejemplo muy básico donde crearemos nuestra propia colección. ¿Cómo haremos esto? Podemos realizarlo a través de un «create».

Entonces, creamos nuestro pipeline que se llamará «p». «Words» será el resultado de la transformación que vamos a aplicar. Añadiremos una operación de tipo create a nuestro pipeline. Al tipo create lo que le pasamos es una lista, un diccionario o cualquier tipo nativo de Python (lo más habitual suele ser una lista).

🔴 ¿Quieres entrar de lleno al mundo DevOps & Cloud Computing? 🔴

Descubre el DevOps & Cloud Computing Full Stack Bootcamp de KeepCoding. La formación más completa del mercado y con empleabilidad garantizada

👉 Prueba gratis el Bootcamp en DevOps & Cloud Computing por una semana

El resultado será una colección que se puede procesar en paralelo, a través de la función beam.Create:

#Create a PCollection
with beam.Pipeline (options = PipelineOptions ()) as p:
       words = (
              p | beam.Create ([
                     'hello',
                     'welcome',
                     'nice',
                     'work',
              ]))
Funcionamiento de Apache Beam

Apache Beam: funcionamiento a nivel técnico

Dentro de la cláusula with de Python definiremos las transformaciones a aplicar. Para encadenar transformaciones a la pipeline se usará el operador | , como vemos a continuación:

[Output PCollection] = [Input PCollection] | [Transform]

[Final Output PCollection] = ([Initial Input PCollection] | [First Transform]
                                                    | [Second Transform]
                                                    | [Third Transform])
Apache Beam
[PCollection of database table rows] = [Database Table Reader] | [Read Transform]
[PCollection of 'A' names] = [PCollection of database table rows] | [Transform A]
[PCollection of 'B' names] = [PCollection of database table rows] | [Transform B]
Funcionamiento de Apache Beam

Transformaciones de Apache Beam

Apache Beam tiene una serie de transformaciones básicas que podemos aplicar en nuestro pipeline. Las fundamentales son las siguientes:

  • ParDo
  • GropuByKey
  • CGroupByKey
  • Combine
  • Flatten
  • Partition

¿Qué sigue?

Ahora que sabes un poco más acerca de Apache Beam, es el momento de seguir formándote en alguna de las numerosas temáticas que tiene el ámbito del Big Data. Si quieres aprender con los mejores profesionales, que te guiarán a través de la teoría y la práctica para que, en unos pocos meses, te transformes en un gran profesional IT, no faltes a nuestro Big Data, Inteligencia Artificial & Machine Learning Full Stack Bootcamp. ¡Pide ya más información y da el paso que impulsará tu futuro!

Posts Relacionados

¡CONVOCATORIA ABIERTA!

DevOps & Cloud Computing

Full Stack Bootcamp

Clases en Directo | Profesores en Activo | Temario 100% actualizado