Apache Beam: procesamiento de datos, canalizaciones de datos, flujo de datos y plantillas flexibles |  de Stefano Bosisio |  febrero de 2024

En este primer artículo, exploramos Apache Beam, desde una canalización simple hasta una más complicada, utilizando GCP Dataflow. Aprendamos qué PTransform, PCollection, GroupByKey y la plantilla Dataflow Flex significa

Imagen por Faruk Kaymak en desempaquetar

Sin duda, procesar datos, crear funciones, mover datos y realizar todas estas operaciones dentro de un entorno seguro, con estabilidad y de manera computacionalmente eficiente, es muy relevante para todas las tareas de IA hoy en día. En aquel entonces, Google comenzó a desarrollar un proyecto de código abierto para iniciar ambos procesamiento por lotes y transmisión operaciones de procesamiento de datos, denominadas Beam. A continuación, Apache Software Foundation comenzó a contribuir a este proyecto, ampliando Apache Beam.

La clave relevante de Apache Beam es su flexibilidad, lo que lo convierte en uno de los mejores SDK de programación para crear canales de procesamiento de datos. Reconocería 4 conceptos principales en Apache Beam que lo convierten en una herramienta de datos invaluable:

  • Modelo unificado para procesamiento por lotes/transmisión: Beam es un modelo de programación unificado, es decir, con el mismo código Beam se puede decidir si procesar datos en modo por lotes o en secuencia, y la canalización se puede utilizar como plantilla para otras unidades de procesamiento nuevas. Beam puede ingerir automáticamente un flujo continuo de datos o realizar operaciones específicas en un lote de datos determinado.
  • Procesamiento paralelo: el núcleo de procesamiento de datos eficiente y escalable comienza con la paralelización de la ejecución de los canales de procesamiento de datos, que distribuyen la carga de trabajo entre múltiples “trabajadores”; un trabajador puede considerarse un nodo. El concepto clave para la ejecución paralela se llama ” ParDo transform”, que toma una función que procesa elementos individuales y los aplica simultáneamente entre varios trabajadores. Lo mejor de esta implementación es que no tiene que preocuparse por cómo dividir datos o crear cargadores por lotes. Apache Beam hará todo por usted.
  • Canalizaciones de datos: dados los dos aspectos anteriores, una canalización de datos se puede crear fácilmente en unas pocas líneas de código, desde la ingesta de datos hasta…