Dagu vs Dagster
Dagu и Dagster решают разные задачи.
Dagster это data-оркестратор на Python, построенный вокруг software-defined assets и lineage. Dagu это один бинарник, который выполняет YAML workflows, вызывающие команды, которые у вас уже есть. Эта страница объясняет, где уместен каждый.
# analytics.yaml
schedule: "0 7 * * *"
steps:
- id: ingest
run: ./bin/ingest --source=stripe --since=1d
- id: dbt_run
run: dbt run --profiles-dir .
depends: [ingest]
- id: dbt_test
run: dbt test --profiles-dir .
depends: [dbt_run]
- id: refresh_dashboards
run: python scripts/refresh_dashboards.py
depends: [dbt_test]
Execution order
Один самодостаточный бинарник без Postgres, daemon и webserver в эксплуатации
Workflows это декларативный YAML, а не Python-фреймворк
Состояние в файлах, без внешней database или message broker
Executor для shell, Docker, HTTP, SSH, sub-workflows, SQL и шагов AI-agent
At a glance
Dagu vs Dagster коротко
Декларативные YAML workflows, вызывающие команды.
software-defined assets и lineage на Python.
Один бинарник с состоянием в файлах, без database.
Webserver и daemon на базе database Postgres.
Скрипты, containers, ops-задачи и команды AI-agent.
Data-платформы, которым нужно моделирование asset и lineage.
In depth
Where each tool fits
Что даёт 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-ориентированную модель.
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.
Next step
Start with one workflow.
Install Dagu, move one fragile script or agent task into YAML, and decide from a real run history.