JPO : Webinar d'information sur nos formations → RDV mardi à 17h30.

Apache Airflow

apache

Apache Airflow es una plataforma de planificación de flujos de trabajo de código abierto ampliamente utilizada en ingeniería de datos. Descubre todo lo que necesitas saber sobre esta herramienta del Data Engineer: funcionamiento, casos de uso, componentes principales, etc.

La historia de Apache Airflow comienza en 2015, en las oficinas de AirBnB. En ese momento, la plataforma de alquileres vacacionales fundada en 2008 experimentó un enorme crecimiento y se estaba desmoronando bajo un volumen de datos cada vez mayor.

La empresa con sede en California contrata Data Scientists, Data Analysts y Data Engineers sin parar, y estos últimos tienen que automatizar muchos procesos escribiendo batch jobs programados. Para apoyarlos, el Data Engineer Maxime Beauchemin crea una herramienta de código abierto llamada Airflow.

Esa herramienta de planificación quiere permitir que los equipos creen, supervisen circuitos de datos por lotes y los repitan. En pocos años, Airflow se ha consolidado como un estándar en el campo de la ingeniería de datos..

En abril de 2016, el proyecto se incorporó a la incubadora oficial de la Fundación Apache. Continuó desarrollándose y recibió el estatus de proyecto de «máxima categoría» en enero de 2019. Casi dos años después, en diciembre de 2020, Airflow cuenta con más de 1400 contribuyentes, 11 230 contribuciones y 19 800 estrellas en Github.

La versión Airflow 2.0 está disponible desde el 17 de diciembre de 2020 y trae nuevas funciones y muchas mejoras. Miles de Data Engineers utilizan esta herramienta en todo el mundo.

¿Qué es Apache Airflow?

La plataforma Apache Airflow permite la creación, la planificación y el seguimiento de flujos de trabajo a través de la programación informática. Es una solución totalmente de código abierto, muy útil para la arquitectura y la orquestación de circuitos complejos de datos y para el lanzamiento de tareas.

Tiene varias ventajas. En primer lugar, es una plataforma dinámica, ya que todo lo que se puede hacer con el código Python, se puede hacer en Airflow.

También es extensible, gracias a muchos plugins que permiten la interacción con la mayoría de los sistemas externos más comunes. También es posible crear nuevos plugins para satisfacer necesidades específicas.

Además, Airflow aporta elasticidad. Los equipos de Data Engineers pueden usarla para realizar miles de tareas diferentes a diario.

Los flujos de trabajo se estructuran y expresan en forma de gráficos acíclicos dirigidos (DAG), con nodos que representan una tarea específica cada uno de ellos. Airflow está diseñada como una plataforma «code first», lo que permite repetir muy rápidamente los flujos de trabajo. Esta filosofía ofrece un alto grado de escalabilidad en comparación con otras herramientas de canalización.

¿Para qué se utiliza Airflow?

Airflow se puede utilizar para cualquier circuito de datos por lotes, por lo que sus casos de uso son tantos como diversos. Debido a su extensibilidad, esta plataforma destaca particularmente para organizar tareas con dependencias complejas en múltiples sistemas externos.

Al escribir circuitos en código y utilizar los diversos plugins disponibles, se puede integrar Airflow en cualquier sistema dependiente desde una plataforma unificada para la gestión y la supervisión.

Como ejemplo, se puede utilizar Airflow para añadir las actualizaciones diarias de los equipos de ventas de Salesforce para enviar un informe diario a los ejecutivos de la empresa.

Además, la plataforma se puede utilizar para organizar y ejecutar tareas de Machine Learning que se ejecutan en clústeres Spark externos. También permite cargar datos de aplicaciones o sitios web en un Data Warehouse una vez por hora.

Los componentes de Airwave

La arquitectura Airwave se basa en varios elementos. Estos son los principales.

Los DAG

Un DAG (Directed Acyclic Graph) es un circuito de datos definido en código Python. Cada DAG representa una secuencia de tareas por ejecutar, organizada para indicar las relaciones entre las tareas en la interfaz de usuario de Airflow. 

Cada una de las tres palabras del acrónimo DAG corresponde a una propiedad de estas tareas. Están “directed” (dirigidas) porque las tareas deben tener al menos una tarea ascendente y una tarea descendente.

«Acyclic» (acíclicos), porque no se permite que las tareas creen datos de autorreferencia para evitar la creación de bucles infinitos. Finalmente, “Graph” (gráficos), porque las tareas se presentan en una estructura clara indicando sus relaciones.

Las tareas

Cada nodo de un DAG representa una tarea. Es una representación visual de los trabajos quese están ejecutando en cada etapa del flujo de trabajo. Los operadores son quienes definen los trabajos.

Los operadores

Los operadores son los componentes básicos de la plataforma Airflow. Permiten determinar el trabajo realizado. Se puede tratar de una tarea individual o del nodo de un DAG, que definirán cómo se ejecutará la tareaejecutará la tarea.

El DAG ayuda a garantizar que los operadores se programen y ejecuten en un orden preciso, mientras que los operadores definen los trabajos que se realizarán en cada paso del proceso.

Hay tres categorías principales de operadores. En primer lugar, los operadores de acción realizan una función. Como ejemplo, citemos PythonOperator o BashOperator.

Los operadores de transferencia, por su parte, pueden transferir datos de una fuente a un destino, como S3ToRedshiftOperator.

Finalmente, los operadores de captura permanecen pasivos hasta que se detecta un evento. Este es el caso del ExternalTaskSensor.

Cada operador se define individualmente. Sin embargo, los operadores pueden comunicar información entre sí mediante XComs.

Los Hooks

En Airflow, los Hooks permiten la interfaz con sistemas de terceros. Permiten conectarse a API y bases de datos externas como Hive, S3, GCS, MySQL, Postgres, etc.

La información confidencial, como las credenciales de inicio de sesión, se mantiene fuera de Hooks. Se almacenan en una base de metadatos cifrada asociada con la instancia actual de Airflow.

Los plugins

Los plugins de Airflow se pueden describir como una combinación de Hooks y operadores. Se utilizan para efectuar determinadas tareas específicas que implican a una aplicación externa.

Por ejemplo, podría ser transferir datos de Salesforce a Redshift. Existe una gran colección de plugins de código abierto creados por la comunidad de usuarios. Cada usuario puede crear plugins para satisfacer sus necesidades específicas.

Las conexiones

Las «conexiones» permiten que Airflow almacene información, lo que permite conectarse a sistemas externos como identificadores o tokens API.

Se gestionan directamente desde la interfaz de usuario de la plataforma. Los datos se cifran y almacenan como metadatos en una base de datos Postgres o MySQL.

¿Cómo aprendo a usar Airflow?

Para aprender a usar Airflow, es tan fácil como hacer un curso de Apache Airflow.Dominar esta solución es una de las habilidades que puedes adquirir siguiendo nuestro curso de Data Engineer o nuestra curso de Machine Learning Engineer.

Ya sabes todo sobre Apache Airflow. Descubre nuestro programa completo en la plataforma de contenedores Docker y en Snowflake the Data Warehouse Cloud.

¿No está disponible?

Déjenos su dirección de correo electrónico para que podamos enviarle los nuevos artículos cuando se publiquen.