Apache Airflow: Batch Processing platform

Apache Airflow: Batch Processing platform

Airflow es una plataforma de Batch Processing donde podremos crear, programar y supervisar dichos flujos de trabajo y todo mediante DAGs. Airflow ejecuta las tareas en un conjunto de workers mientras continúa con las dependencias especificadas. Dispone de una más que completa línea de comandos que permite realizar configuraciones un tanto complejas en los DAGs, como también de una correcta interfaz de usuario que facilita la visualización de las pipelines que se están ejecutando en producción, para su monitoreo y aplicar resolución de problemas cuando sea necesario.

Apache Airflow

Airflow no es un sistema como Spark Streaming, Kafka Streams o Apache Storm, pero sí un tanto parecido a otros sistemas como Oozie o Azkaban.

¿Cómo podemos utilizar Apache Airflow?

Podemos utilizar Airflow desde el análisis de datos y agregaciones de métricas, hasta operaciones de intermediación como transacciones económicas o pagos.

Airflow utiliza Operadores como unidad fundamental de abstracción para definir tareas, y utiliza los DAGs para definir flujos de trabajo utilizando un conjunto de operadores. Los operadores son extensibles, lo que facilita la personalización de los flujos de trabajo y, podemos encontrar los operadores divididos en 3 tipos que son:

  • Operadores de acción, aquellos que realizan alguna acción, como ejecutar una función Python o enviar un Spark Job.
  • Transferencia de los operadores, aquellos que mueven datos entre sistemas como de Hive a la base de datos o de AWS S3 a Hive.
  • Sensores, aquellos que activan tareas de flujo, por ejemplo, pueden comprobar que un determinado archivo esté disponible en S3 antes de utilizarlo en el flujo de trabajo. Los sensores son una potente característica de Airflow que nos permite crear flujos de trabajo complejos y gestionar fácilmente sus condiciones previas.

Agregación de métricas y procesamiento por lotes

Podemos utilizar Airflow para la agregación de métricas y el procesamiento de datos por lotes. Con la evolución de las necesidades, a veces tenemos que volver atrás y cambiar la forma en que agregamos ciertas métricas o añadimos nuevas métricas.

Airflow nos proporciona una CLI que nos permite ejecutar backfills en períodos de tiempo arbitrarios con un solo comando, y también nos permite activar dichos backfills desde la interfaz de usuario. La capacidad de definir DAGs con código Python y su API extensible hacen de Airflow una herramienta configurable y potente.

Apache Airflow DAG

Si queremos saber más sobre Airflow, el equipo de Airbnb Engineering ha publicado un post en Medium sobre sus múltiples posibilidades.

Libro recomendación

La recomendación de hoy es el libro de Leigh Gallagher: “Historia de Airbnb”, quien nos dará un más que interesante paseo por todos los entresijos de Airbnb.

NOTA: Recuerda que si pulsas en el enlace del libro, me gano una pequeña comisión sin que a ti te cueste nada extra y me estarás ayudando con los costes de mantenimiento del Blog.

Comentarios, opiniones y valoración: Me gustaría saber qué tienes que decir a través de las redes sociales mediante el hashtag #theninjacto.

Autor: Joakim Vivas

comments powered by Disqus