Curaduría de herramientas open source · Python-first · en español

El catálogo

Nº10 · Orquestación

Dagster

Orquestación de pipelines centrada en los datos (assets), no solo en tareas.

PlataformaIntermedioData Engineerpython

¿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.py y abre http://localhost:3000: verás el grafo ventas → total_por_pais y 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én

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.

Tipo de comentario
0/2000

Sin spam. El correo es opcional y solo se usa para responderte.

Nº10 · Actualizado 2026-06-26