La gestion des flux de données est une tâche essentielle. Pour répondre à ce besoin, Elementl a introduit en 2018 Dagster, un outil innovant conçu pour orchestrer et superviser efficacement les pipelines de données. Dagster est une librairie Python open-source de gestion et d’orchestration de flux de données, conçue pour faciliter le développement, le déploiement et la surveillance de pipelines. Comme Airflow, son concurrent plus ancien de quatre ans, Dagster modélise les flux de données sous forme de graphe orienté acyclique (DAG). Cependant, alors qu’Airflow construit un graph où les nœuds représentent des opérations, Dagster construit un graphe où les nœuds représentent l’état de la donnée et les arcs les opérations. Ces nœuds sont appelés Assets.
Dagster permet de déclencher ces opérations selon plusieurs critères : une fréquence d'intervalle, un événement déclencheur (par exemple, l'arrivée d'un nouveau fichier dans un bucket), ou une demande explicite de l'utilisateur (via CLI ou l'interface web). Il offre également une interface web intuitive permettant de visualiser les flux de données, leur état, les exécutions et de nombreuses autres informations essentielles.
Côté écosystème et intégration, Dagster dispose aujourd'hui de connecteurs avec la plupart des librairies courantes (Snowflake, PostgreSQL, dbt, etc.) et peut être déployé sur Docker, Kubernetes, AWS, GCP, entre autres. Dagster semble apporter des solutions à plusieurs problèmes auxquels Airflow ne répond pas. Tout d'abord, il permet de passer facilement des données entre les opérations. Ensuite, il offre un environnement de test facile à mettre en place. Enfin, Dagster inclut un type-checking à l'exécution, garantissant ainsi la cohérence des données.
Airflow bénéficie d'une communauté plus vaste, avec davantage de ressources, tutoriels et exemples disponibles, ce qui peut rendre la transition vers Dagster complexe pour les utilisateurs habitués aux orchestrateurs traditionnels. L’approche orientée donnée de Dagster peut également rendre plus difficiles à visualiser les tâches qui ne produisent pas d’état de données dans l’interface utilisateur.
Le point de vue Theodo
Aujourd’hui, nous recommandons de préférer Airflow à Dagster pour une orchestration de tâches complexes. Cependant, pour des orchestrations plus simples et où l’approche orientée données (et non tâches) a du sens, Dagster offre une UI agréable, une implémentation rapide, et peut être une bonne option à tester.
Le point de vue MDN
Dagster change le paradigme des orchestrateurs en mettant les Assets au centre plutôt que les opérations et DAGs de transformations. L’interface moderne contient tous les éléments essentiels à la gestion d’une plateforme de données. J’apprécie énormément Dagster pour son UI extrêmement agréable et son intégration de premier niveau avec dbt.
Lorem ipsum dolor sit amet consectetur. Eu tristique a enim ut eros sed enim facilisis. Enim curabitur ullamcorper morbi ultrices tincidunt. Risus tristique posuere faucibus lacus semper.
En savoir plus