🚀 [APACHE AIRFLOW] ¿Qué es Apache Airflow? 🔭 ¿Cómo instalar Apache Airflow en Ubuntu 18.04? 🥇

Enviado por LT DATA el Dom, 07/02/2021 - 17:16

🚀 [APACHE AIRFLOW] ¿Qué es Apache Airflow? 🔭 ¿Cómo instalar Apache Airflow en Ubuntu 18.04? 🥇

Hoy os enseñaré que es Apache Airflow y como instalarlo en una máquina con Ubuntu 18.04

¿Qué es Apache Airflow?

Es una herramienta capaz de orquestar la ejecución de procesos. Es decir, no solo es capaz de programar la ejecución de un proceso a una hora determinada, como harías en el crone de cualquier máquina Linux. Si no que es capaz de mandar ejecutar otra tarea según el estado que devuelva la tarea anterior. Es decir, si la tarea uno que se tiene que ejecutar a las 3 de la mañana acaba con éxito, ejecutas la 2, y si se ha producido algún error envía un email a esta cuenta de correo electrónico y la vuelve a ejecutar. De esta manera te aseguras un orden correcto en la ejecución de tus procesos, así como que cada tarea obtenga los recursos necesarios. Sería el equivalente gratuito, a lo que a través de AWS se conoce como Data Pipelines.

Apache Airflow funciona a través de navegador, proporcionando una interfaz gráfica para monitorear y solucionar cualquier problema que pueda surgir. Nace en 2015 de la mano de Airbnb, empresa que estaba experimentando un cambio. Estaban creciendo mucho y muy rápido y tenían una gran cantidad de datos que no paraban de crecer. Para lograr la visión de convertirse en una organización totalmente basada en datos, tuvieron que hacer crecer su fuerza laboral de data engineers y data science, todos los cuales tenían que automatizar regularmente los procesos escribiendo procesos batch. Para satisfacer la necesidad de una herramienta de programación sólida, nace Apache Airflow de código abierto y con la idea de que les permitiría crear, iterar y monitorear rápidamente sus canales de datos por lotes.

Desde ese año, Airflow ha recorrido un largo camino. El proyecto se incorporó a la incubadora oficial de la Fundación Apache en abril de 2016, donde vivió y creció hasta graduarse como proyecto de alto nivel el 8 de enero de 2019. Dos años después, en febrero de 2021, fecha en la que estoy escribiendo este post, Airflow cuenta con más de 1.400 colaboradores, y ​​19,800 estrellas en Github. El 17 de diciembre de 2020, se lanzó Airflow 2.0, que trajo consigo importantes actualizaciones y nuevas funciones. Airflow es utilizado por miles de equipos de ingeniería de datos en todo el mundo y continúa siendo adoptado a medida que la comunidad se fortalece.

Apache Airflow

Características de Apache Airflow

Las características principales de Apache Airflow

  • Fácil de usar: si tiene un poco de conocimiento de Python podrás trabajar con Airflow sin problema.
  • Código abierto: es gratuito y cuenta con muchos usuarios dispuestos a echarte una mano con cualquier problema a través de los foros.
  • Integraciones robustas: ya que posee conectores listos para usar para que pueda trabajar con Google Cloud Platform, Amazon AWS, Microsoft Azure, etc.
  • Usa Python como lenguaje de programación: puede usar Python para crear flujos de trabajo simples a complejos con total flexibilidad.
  • Gracias a su interfaz de usuario: puedes monitorear y administrar sus flujos de trabajo. permitiéndote comprobar el estado de las tareas completadas y en curso.
  • Es dinámico ya que todo lo que puedes hacer en Python, lo puede hacer en Airflow.
  • Es extensible: ya que tiene complementos disponibles para interactuar con los sistemas externos más comunes. También puedes crear tus propios complementos según sea necesario.
  • Es escalable.

Con Airflow, los flujos de trabajo se diseñan y expresan como gráficos acíclicos dirigidos (lo que se conoce como DAG), representando cada tarea del  nodo del DAG una tarea específica. Airflow está diseñado con la creencia de que todas las canalizaciones de datos se expresan mejor como código.


Componentes de Apache Airflow

  • DAG: como acabamos de comentar es el gráfico acíclico dirigido, una colección de todas las tareas que desea ejecutar, que está organizada y muestra la relación entre las diferentes tareas. Está definido en una secuencia de comandos de Python.
  • Servidor web: es la interfaz de usuario construida en Flask. Nos permite monitorear el estado de los DAG y activarlos.
  • Base de datos de metadatos: Airflow almacena el estado de todas las tareas en una base de datos y realiza todas las operaciones de lectura / escritura de un flujo de trabajo desde aquí.
  • Programador: como sugiere el nombre, este componente es responsable de programar la ejecución de los DAG. Recupera y actualiza el estado de la tarea en la base de datos.

¿Cómo instalar Airflow en una máquina con Ubuntu 18.04?

> export AIRFLOW_HOME=~/airflow

> apt install python3-pip
 
> pip3 install apache-airflow


> airflow db init

> airflow users create \
    --username Lt \
    --firstname Data \
    --lastname Channel \
    --role Admin \
    --email info@ltdatachannel.com


> airflow webserver --port 8080

> airflow scheduler

 

Vídeo de ejemplo