Dagu vs Dagster
Dagu et Dagster résolvent des problèmes différents.
Dagster est un orchestrateur de données Python bâti autour des software-defined assets et de la lineage. Dagu est un binaire unique qui exécute des workflows YAML appelant les commandes que vous avez déjà. Cette page explique où chacun convient.
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]Un binaire autonome, sans Postgres, daemon ni webserver à exploiter
Les workflows sont du YAML déclaratif, pas un framework Python
État stocké dans des fichiers, sans database externe ni message broker
Executors pour shell, Docker, HTTP, SSH, sous-workflows, SQL et étapes AI-agent
Ce que Dagu apporte
Dagu planifie, relance et observe des commandes. Vous écrivez le workflow en YAML et Dagu l'exécute comme un seul processus adossé à des fichiers. Le Web UI montre les exécutions, les logs et l'historique sans service supplémentaire.
- Exécute scripts, binaires, containers, appels HTTP, commandes SSH, SQL et étapes AI-agent.
- Démarre comme un seul binaire puis évolue vers l'exécution en file ou distribuée.
- Consulte l'historique des exécutions et les logs dans le Web UI sans monter de database.
En quoi Dagster diffère
Dagster traite le data asset comme l'unité de travail. Vous déclarez les asset en Python, et la plateforme suit la lineage, les partition et les materialization entre eux. Une installation self-hosted fait tourner un webserver et un daemon adossés à Postgres.
- Les software-defined assets modélisent les tables et fichiers produits par un pipeline.
- Les partition et backfill permettent de traiter et retraiter des tranches de données.
- L'IO manager gère la lecture et l'écriture, gardant le code des asset concis.
Quand choisir Dagster
Si votre travail porte fondamentalement sur les data asset et leur lineage, Dagster est l'outil le plus solide. Dagu n'a pas de software-defined assets, pas d'IO manager, et n'est pas un framework Python, donc il ne modélise pas une plateforme de données comme Dagster.
- Vous voulez la lineage et l'observabilité au niveau asset sur les modèles dbt et les tables.
- Les jeux de données partitionnés, les backfill et les IO manager sont au cœur de vos pipelines.
- L'équipe écrit les pipelines en Python et veut un modèle centré sur les asset.
Dagu vs Dagster en bref
FAQ
Practical questions before adopting Dagu
Dagu remplace-t-il Dagster ?
Pas pour le travail sur les data asset. Dagster est conçu pour les software-defined assets, la lineage et les partition, ce que Dagu ne fait pas. Dagu remplace Dagster seulement quand vous aviez surtout besoin de planifier et d'observer des commandes et que le modèle d'asset dépassait le besoin.
Dagu peut-il orchestrer des data pipelines ?
Oui, si le pipeline s'exprime en commandes, containers, appels HTTP, commandes SSH, SQL ou sous-workflows. Dagu orchestre les étapes mais ne suit pas les data asset ni la lineage entre elles.
Faut-il une database pour exécuter Dagu ?
Non. Dagu garde l'état dans des fichiers et tourne comme un binaire unique. Il n'y a ni Postgres, ni daemon, ni webserver séparé à exploiter, et c'est la principale différence d'installation avec un Dagster self-hosted.
Start with one workflow.
Install Dagu, move one fragile script or agent task into YAML, and decide from a real run history.