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.
Buzón de KioskoAI
¿Falta algo en la guía de Dagster?
Esto define qué se escribe después. Si algo te sirvió a medias, dilo.
Nº10 · Actualizado 2026-06-26