Dagu vs Dagster

Dagu e Dagster resolvem problemas diferentes.

O Dagster é um orquestrador de dados em Python construído em torno de software-defined assets e lineage. O Dagu é um binário único que executa workflows YAML chamando comandos que você já tem. Esta página explica onde cada um se encaixa.

Um workflow que chama os comandos que você já executa
name: nightly-ops
schedule: "0 2 * * *"

steps:
  - id: extract
    run: python scripts/extract.py

  - id: transform
    run: ./bin/transform
    retry_policy:
      limit: 3
    depends: [extract]

  - id: notify
    run: ./scripts/slack-success.sh
    depends: [transform]

Um binário autossuficiente, sem Postgres, daemon ou webserver para operar

Os workflows são YAML declarativo, não um framework Python

Estado em arquivos, sem database externo ou message broker

Executors para shell, Docker, HTTP, SSH, sub-workflows, SQL e passos de AI-agent

At a glance

Dagu vs Dagster em resumo

Modelo
Dagu

Workflows YAML declarativos que chamam comandos.

Dagster

software-defined assets e lineage definidos em Python.

Self-hosting
Dagu

Um binário com estado em arquivos, sem database.

Dagster

Webserver e daemon apoiados em uma database Postgres.

Melhor caso
Dagu

Scripts, containers, tarefas de operação e comandos de AI-agent.

Dagster

Plataformas de dados que precisam modelar asset e lineage.

In depth

Where each tool fits

01

O que o Dagu oferece

O Dagu agenda, repete e observa comandos. Você escreve o workflow em YAML e o Dagu o executa como um único processo apoiado em arquivos. O Web UI mostra execuções, logs e histórico sem serviços extras.

  • Executa scripts, binários, containers, chamadas HTTP, comandos SSH, SQL e passos de AI-agent.
  • Começa como um binário único e cresce para execução em fila ou distribuída depois.
  • Veja o histórico de execuções e os logs no Web UI sem subir um database.
02

Como o Dagster é diferente

O Dagster trata o data asset como a unidade de trabalho. Você declara os asset em Python, e a plataforma rastreia lineage, partition e materialization entre eles. Uma instalação self-hosted roda um webserver e um daemon apoiados em Postgres.

  • software-defined assets modelam as tabelas e arquivos que um pipeline produz.
  • partition e backfill permitem processar e reprocessar fatias de dados.
  • O IO manager cuida da leitura e escrita, mantendo o código do asset enxuto.
03

Quando escolher o Dagster

Se o seu trabalho é essencialmente sobre data asset e sua lineage, o Dagster é a ferramenta mais forte. O Dagu não tem software-defined assets, não tem IO manager e não é um framework Python, então não modela uma plataforma de dados como o Dagster.

  • Você quer lineage e observabilidade no nível de asset sobre modelos dbt e tabelas.
  • Conjuntos particionados, backfill e IO manager são o centro dos seus pipelines.
  • A equipe escreve pipelines em Python e quer um modelo centrado em asset.

FAQ

Practical questions before adopting Dagu

O Dagu substitui o Dagster?

Para trabalho com data asset, não. O Dagster foi feito para software-defined assets, lineage e partition, e o Dagu não faz nada disso. O Dagu substitui o Dagster apenas quando você precisava sobretudo agendar e observar comandos e o modelo de asset era mais do que a tarefa exigia.

O Dagu consegue orquestrar data pipelines?

Sim, quando o pipeline pode ser expresso como comandos, containers, chamadas HTTP, comandos SSH, SQL ou sub-workflows. O Dagu orquestra os passos, mas não rastreia data asset ou lineage entre eles.

Preciso de um database para rodar o Dagu?

Não. O Dagu mantém o estado em arquivos e roda como um binário único. Não há Postgres, daemon ou webserver separado para operar, e essa é a principal diferença de instalação em relação a um Dagster self-hosted.

Next step

Start with one workflow.

Install Dagu, move one fragile script or agent task into YAML, and decide from a real run history.