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