¿Qué es Apache Airflow?

Airflow es una plataforma de gestión de flujo de trabajo de código abierto escrita en Python.

Aunque airflow no es una herramienta ETL, puede ser definido como un orquestador de tareas, permitiendo ejecutar cada tarea en el momento correcto, de la forma correcta, en el orden correcto.

El proyecto surgió de Airbnb pero como indica su nombre fue donado a la Apache Foundation y ahora es open-source, es decir, libre y gratis.

Ventajas de Airflow

  1. Dinámico
    Como se programa en Python, todo lo que puedes hacer en Python lo puedes hacer en Airflow en tus flujos de trabajo o data pipelines.
  2. Escalable
    Puedes ejecutar muchas tareas a la vez.
  3. Interfaz de usuario
    Tiene una muy buena interfaz de usuario para interactuar con Airflow de forma dinámica.
  4. Extensibilidad
    Puedes crear tu propio plugin para que Airflow pueda interactuar con cualquier herramienta.

Los componentes de Airflow

Apache Airflow tiene varios componentes. Estos son los principales para que te hagas una idea:

  1. Servidor Web – Servidor Flask con Gunicorn
  2. Scheduler – Demonio encargado de los flujos de trabajo
  3. Metastore – Base de datos donde se guardan los metadatos
  4. Executor – Define cómo se ejecutan las tareas
  5. Worker – Proceso que ejecuta tu tarea

¿Qué es un DAG?

Airflow utiliza Directed Acyclic Graphs, o DAGs, para la creación de tareas y flujos de trabajos.

Directed = Direccionado. Significa que hay un orden específico en la dirección de sus dependencias.

Acyclic = Acíclico. Significa que no es un bucle y no se repite.
Graph = Gráfico. Significa que se muestra en formato gráfico, con sus componentes.

 

Ejemplo de un DAG

En el ejemplo anterior se ejecutaría la tarea 1 primero y luego las tareas 2 y 3. La tarea 4 no se ejecutaría hasta que terminasen las tareas 2 y 3.

Cada tarea esta compuesta por un operator. Hay muchos tipos de operators pero algunos de los más comunes son el BashOperator y el PythonOperator. El primero permitiendo ejecutar código de la linea de comandos escrita en Bash y el segundo permitiendo ejecutar código en Python.

Caso de uso

Hay tantos casos de uso como imaginación tengas, pero uno clásico sería el almacenamiento de datos en una base de datos de archivos descargados de una API. Por ejemplo, el caso siguiente:

En este ejemplo creamos una tabla en una base de datos SQLite con el SqliteOperator, luego utilizamos el HttpSensor para ver si está la API disponible. Después utilizamos el SimpleHttpOperator para extraer un usuario de la API y lo procesamos en Python con el Python Operator. Finalmente utilizamos el BashOperator para almacenarlo en nuestra base de datos utilizando bash.

Como veis este es solo un ejemplo y Airflow te da la habilidad de crear todo tipo de tareas y flujos de trabajo.

¿Quieres aprender a trabajar con Airflow?

En Datademia tenemos un curso de Airflow donde aprenderás a crear y configurar un Data Pipeline desde cero.

Este curso es también parte del Data Engineering Bootcamp donde te podrás convertir en un Ingeniero de Datos en menos de 3 meses.

Visita la web de Datademia para saber más,

Comparte en tus redes

Dejar un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *