Apache Airflow: El Director de Orquesta de tus Pipelines
Apache Airflow es la herramienta de orquestacion mas utilizada en datos. Creada por Airbnb, permite definir, programar y monitorear pipelines complejos como codigo Python. En LATAM, Mercado Libre, iFood y Nubank usan Airflow para miles de pipelines diarios.
Conceptos Fundamentales
- DAG: Workflow como grafo de tareas con dependencias (sin ciclos).
- Task: Unidad de trabajo individual.
- Operator: Clase que define que hace una task (PythonOperator, BashOperator, etc.).
- Sensor: Task que espera una condicion.
- XCom: Paso de datos entre tasks (solo metadatos pequenos).
from airflow import DAG
from airflow.operators.python import PythonOperator
from airflow.operators.bash import BashOperator
from datetime import datetime, timedelta
default_args = {
'owner': 'data-team',
'retries': 3,
'retry_delay': timedelta(minutes=5),
}
with DAG('pipeline_ventas_latam',
default_args=default_args,
schedule_interval='0 6 * * *',
start_date=datetime(2025, 1, 1),
catchup=False,
tags=['ventas', 'latam'],
) as dag:
def extract_payments(**ctx):
execution_date = ctx['ds']
# logica de extraccion
return {'records': 15420}
extract = PythonOperator(
task_id='extract_payments',
python_callable=extract_payments)
transform = BashOperator(
task_id='run_dbt',
bash_command='cd /opt/dbt && dbt build --select tag:ventas')
extract >> transform| Practica | Descripcion |
|---|---|
| Idempotencia | Cada task produce el mismo resultado si se ejecuta multiples veces |
| Atomicidad | Si falla, no deja datos corruptos |
| No XCom para datos grandes | XCom es para metadatos. Datos grandes van a S3/GCS |
| Templating | Usa {{ ds }} para fechas dinamicas |
| Monitoring | Alertas por email/Slack para fallos |
🚀 Alternativas a Airflow
Prefect: Mas Pythonic, mejor UX. Dagster: Asset-oriented, excelente para dbt. Mage: UI drag-and-drop. Airflow sigue siendo el estandar por su comunidad.
Con Airflow orquestando, tienes un sistema de datos profesional.