Dagu vs Dagster

Dagu и Dagster решают разные задачи.

Dagster это data-оркестратор на Python, построенный вокруг software-defined assets и lineage. Dagu это один бинарник, который выполняет YAML workflows, вызывающие команды, которые у вас уже есть. Эта страница объясняет, где уместен каждый.

Workflow, который вызывает команды, уже запускаемые вами
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]

Один самодостаточный бинарник без Postgres, daemon и webserver в эксплуатации

Workflows это декларативный YAML, а не Python-фреймворк

Состояние в файлах, без внешней database или message broker

Executor для shell, Docker, HTTP, SSH, sub-workflows, SQL и шагов AI-agent

Что даёт Dagu

Dagu планирует, повторяет и наблюдает за командами. Вы пишете workflow на YAML, и Dagu запускает его как один процесс на файлах. Web UI показывает запуски, логи и историю без дополнительных сервисов.

  • Запуск скриптов, бинарников, containers, HTTP-вызовов, SSH-команд, SQL и шагов AI-agent.
  • Старт с одного бинарника и рост до queue-based или распределённого выполнения позже.
  • Просмотр истории запусков и логов в Web UI без поднятия database.

Чем отличается Dagster

Dagster рассматривает data asset как единицу работы. Вы объявляете asset на Python, а платформа отслеживает lineage, partition и materialization между ними. Self-hosted установка запускает webserver и daemon на базе Postgres.

  • software-defined assets моделируют таблицы и файлы, которые создаёт pipeline.
  • partition и backfill позволяют обрабатывать и переобрабатывать срезы данных.
  • IO manager берёт на себя чтение и запись данных, оставляя код asset простым.

Когда выбрать Dagster

Если ваша работа по сути про data asset и их lineage, Dagster это более сильный инструмент. У Dagu нет software-defined assets, нет IO manager, и это не Python-фреймворк, поэтому он не моделирует data-платформу так, как Dagster.

  • Нужны lineage и наблюдаемость на уровне asset по моделям dbt и таблицам.
  • Партиционированные наборы, backfill и IO manager в центре ваших pipelines.
  • Команда пишет pipelines на Python и хочет asset-ориентированную модель.

Dagu vs Dagster коротко

Dimension
Dagu
Typical alternative
Модель
Декларативные YAML workflows, вызывающие команды.
software-defined assets и lineage на Python.
Self-hosting
Один бинарник с состоянием в файлах, без database.
Webserver и daemon на базе database Postgres.
Лучше всего для
Скрипты, containers, ops-задачи и команды AI-agent.
Data-платформы, которым нужно моделирование asset и lineage.

FAQ

Practical questions before adopting Dagu

Заменяет ли Dagu Dagster?

Для работы с data asset нет. Dagster создан для software-defined assets, lineage и partition, а Dagu этого не делает. Dagu заменяет Dagster только тогда, когда вам по сути нужно было планировать и наблюдать за командами, а модель asset была избыточной.

Может ли Dagu оркестрировать data pipelines?

Да, если pipeline выражается как команды, containers, HTTP-вызовы, SSH-команды, SQL или sub-workflows. Dagu оркестрирует шаги, но не отслеживает data asset или lineage между ними.

Нужна ли database для запуска Dagu?

Нет. Dagu хранит состояние в файлах и работает как один бинарник. Нет Postgres, daemon или отдельного webserver в эксплуатации, и это главное отличие установки от self-hosted Dagster.

Start with one workflow.

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

Install Dagu