Nº10 · Orquestación
Dagster
Orquestación de pipelines centrada en los datos (assets), no solo en tareas.
¿Qué es?
Dagster es un orquestador de pipelines de datos moderno y centrado en assets. En lugar de pensar solo en tareas que se ejecutan en orden, defines en Python los activos de datos que produces — una tabla, un modelo, un dataset — y sus dependencias. El grafo de ejecución se infiere de esas relaciones, y con él vienen tipos, tests y observabilidad de fábrica.
Ese giro (de "tareas" a "assets") es lo que lo diferencia de los orquestadores tradicionales: el sistema sabe qué dato produce cada paso, no solo que algo corrió.
¿Para qué sirve?
- Modelar pipelines como un grafo de assets. Declaras cada activo y sus dependencias; Dagster construye el DAG y mantiene el linaje.
- Desarrollo local + UI. Corres y depuras todo en tu máquina, y la interfaz web muestra el grafo, las ejecuciones y el estado de cada asset.
- Integración con el stack. Conecta de forma natural con dbt, Spark, warehouses y fuentes de datos bajo un mismo grafo observable.
- Schedules y sensores. Programa materializaciones por tiempo o dispáralas ante eventos.
¿Cuándo usarla / cuándo no?
Úsalo cuando quieras un orquestador data-aware con buena experiencia de desarrollo: pipelines con varias fuentes y dependencias entre tablas, testing local, linaje y observabilidad sin cablearlos a mano.
Piénsalo dos veces para:
- Un solo cron simple (un script una vez al día): montar un orquestador es overkill — un cron basta.
- Equipos ya invertidos en Airflow: frente a Airflow — más tradicional, task-centric y con un ecosistema enorme de operadores — la elección depende del equipo y del caso, no de cuál es "mejor" en abstracto.
Empieza en 1 minuto
Define un asset que produce datos y otro que lo consume — el corazón del modelo de Dagster.
pip install dagster
# pipeline.py
from dagster import asset
@asset
def ventas():
# Activo de origen: produce los datos
return [{"pais": "PE", "monto": 150}, {"pais": "CL", "monto": 80}]
@asset
def total_por_pais(ventas):
# Activo downstream: depende de `ventas` por el nombre del parámetro
totales = {}
for fila in ventas:
totales[fila["pais"]] = totales.get(fila["pais"], 0) + fila["monto"]
return totales
Lanza la UI con
dagster dev -f pipeline.pyy abrehttp://localhost:3000: verás el grafoventas → total_por_paisy podrás materializarlo con un clic.
Trivia rápida — pon a prueba lo que acabas de leer.
¿Qué tanto sabes de Dagster?
Documentación oficial
La fuente de verdad vive ahí. Acá orientamos; la profundidad la pones tú.
Abrir documentación oficial ↗Qué aprender después
Ver tambiénApache Airflow
Orquesta pipelines de datos como código: programa, ejecuta y monitorea.
dbt
Transforma datos en tu warehouse con SQL, como si fuera código de software.
Apache NiFi
Mueve datos entre sistemas con flujos visuales, sin escribir código.
Nº10 · Actualizado 2026-06-26