Introducción a Apache Airflow

Introducción a Apache Airflow en Python

Mike Metzger

Data Engineer

¿Qué es la ingeniería de datos?

La ingeniería de datos es:

  • Convertir cualquier acción con datos en un proceso fiable, repetible y mantenible.
Introducción a Apache Airflow en Python

¿Qué es un flujo de trabajo?

Un flujo de trabajo es:

  • Un conjunto de pasos para completar una tarea de ingeniería de datos
    • Por ejemplo: descargar archivos, copiar datos, filtrar información, escribir en una base de datos, etc.
  • Con distintos niveles de complejidad
  • Un término cuyo significado varía según el contexto

Flujo de trabajo de ejemplo

Introducción a Apache Airflow en Python

¿Qué es Airflow?

Airflow es una plataforma para programar flujos de trabajo, incluyendo:

  • Creación
  • Planificación
  • Monitorización

Logo de Airflow

Introducción a Apache Airflow en Python

Más sobre Airflow

  • Puede ejecutar programas en cualquier lenguaje, pero los flujos se escriben en Python
  • Implementa flujos como DAGs: Grafos Acíclicos Dirigidos
  • Acceso por código, línea de comandos o interfaz web / REST API

Logo de Airflow

1 https://airflow.apache.org/docs/stable/
Introducción a Apache Airflow en Python

Otras herramientas de flujo de trabajo

Otras herramientas:

  • Luigi
  • SSIS
  • Scripting en Bash

Logo de Luigi

Logo de Bash

Logo de SSIS

Introducción a Apache Airflow en Python

Introducción rápida a los DAGs

Un DAG es un grafo acíclico dirigido.

  • En Airflow, representa el conjunto de tareas de tu flujo de trabajo.
  • Incluye las tareas y sus dependencias.
  • Se crea con detalles del DAG: nombre, fecha de inicio, propietario, etc.
  • Lo veremos a fondo en la próxima lección.

Ejemplo de DAG

Introducción a Apache Airflow en Python

Ejemplo de código de DAG

Definición simple de DAG:

etl_dag = DAG(
    dag_id='etl_pipeline',
    default_args={"start_date": "2024-01-08"}
)
Introducción a Apache Airflow en Python

Ejecutar un flujo en Airflow

Ejecutar una tarea simple de Airflow

airflow tasks test <dag_id> <task_id> [execution_date]

Usando un DAG llamado example-etl, una tarea download-file el 2024-01-10:

airflow tasks test example-etl download-file 2024-01-10
Introducción a Apache Airflow en Python

¡Vamos a practicar!

Introducción a Apache Airflow en Python

Preparing Video For Download...