Retour aux articles
  • 24.04.2023

Qu’est-ce que dbt (data build tool) ?

Qu’est-ce que dbt (data build tool) ?

Qu'est-ce que dbt (data build tool) ?

Dbt est un outil de ligne de commande open-source qui aide les sociétés à construire, tester et maintenir leur infrastructure de données. L'outil est conçu pour faciliter le travail des data engineers et data analysts, en fournissant une approche cohérente et standardisée de la transformation et de l'analyse des données.

Data build tool permet aux utilisateurs de définir leurs modèles de données à l'aide de SQL, puis utilise ces modèles pour générer un code SQL optimisé qui peut être exécuté sur un entrepôt de données ou un autre système de stockage de données. Cela permet aux utilisateurs de construire une infrastructure de données maintenable et évolutive qui peut être facilement mise à jour et étendue au fil du temps.

Outre la génération de code SQL, dbt propose également un certain nombre de fonctionnalités qui facilitent le travail avec les données. Ces fonctionnalités incluent la possibilité de gérer les dépendances entre les modèles de données, d'exécuter des tests pour garantir l'intégrité des données et de suivre l'évolution des données pour comprendre comment elles ont été transformées au fil du temps.

Comment fonctionne data build tool ?

Avec l'avènement de la technologie ETL, qui consiste à charger les données brutes dans votre entrepôt puis à les transformer, des outils automatisés sans code ont complètement automatisé le processus. Ils vous permettent de répliquer simplement les données brutes provenant de sources multiples vers votre référentiel central. Cependant, la modélisation (transformation) des données reste un problème majeur.

Les entreprises optent pour un code personnalisé utilisant Airflow. Cette méthode est souvent inaccessible car elle est entièrement écrite en python et nécessite une grande infrastructure. Ou bien elles optent pour une modélisation GUI (interface utilisateur graphique) avec des outils tels que Looker. Ces outils s'accompagnent généralement de frais de licence élevés et posent de nombreux problèmes de maintenance. C'est là qu'intervient Data Build Tool, qui agit comme une couche d'orchestration au-dessus de votre entrepôt de données. Les processus de base impliqués dans le dbt sont les suivants :

Développement : À l'aide de simples instructions SQL SELECT, vous pouvez écrire des transformations modulaires, construire des tables et des vues et exécuter des modèles dans l'ordre. Vous pouvez également utiliser des paquets python pour des analyses complexes.

Test et documentation : Lorsque vous développez un modèle, vous pouvez d'abord le tester avant de l'envoyer en production. Data Build Tool génère également de manière dynamique une documentation détaillée comprenant des hypothèses validées, des graphiques de dépendance et des dictionnaires de données dynamiques. Vous pouvez rapidement partager ces documents avec toutes les parties prenantes, ce qui favorise une plus grande transparence des données.

Déploiement avec contrôle de version : Déployez votre code en passant par les environnements dev, stage et prod. Profitez du contrôle de version basé sur Git pour revenir aux états précédents. Vous pouvez également avoir une meilleure visibilité sur vos workflows de transformation grâce à la planification, à la journalisation et aux alertes intégrées à l'application.

Pourquoi utiliser dbt ?

Une transformation plus simple

Dbt vous permet de faire tout le travail en SQL. Il permet aux analystes de données d'écrire des transformations via des instructions SELECT. Il n'est donc pas nécessaire d'utiliser un code standard et les data analysts peuvent transformer les données même s'ils ne sont pas familiarisés avec d'autres langages de programmation.

Modularité

Avec dbt, vous pouvez organiser toutes les transformations de données dans des modèles de données discrets. Chaque modèle dbt convertit les données brutes dans l'ensemble de données cible ou fonctionne comme une étape de conversion intermédiaire. dbt vous permet d'organiser et de matérialiser la logique métier fréquemment utilisée de manière collaborative, contrôlée par version et rapide.

De meilleurs documents

dbt automatise la génération de la documentation autour des descriptions, des dépendances du modèle, du modèle SQL, des sources et des tests. La documentation affiche les modèles existants, les objets de base de données pertinents et des informations détaillées sur chaque modèle.

dbt rend la documentation des données transparente et visible grâce aux graphiques de lignage qu'il génère. Dbt rend la documentation du projet dans son application web et contient des informations sur le projet (code du modèle, DAG du projet, tests ajoutés à une colonne) et sur l'entrepôt de données (types de données des colonnes, tailles des tables).

L'analyse en tant que code

Comme dbt s'intègre à Git, tout nouveau code peut être testé, révisé et documenté en toute sécurité avant d'être intégré à la branche principale. Cela signifie que le risque d'écraser ou de modifier accidentellement une table de production en travaillant sur quelque chose de nouveau est beaucoup plus faible.

dbt cloud, un service hébergé qui aide à pousser les déploiements de dbt en production, vous offre une intégration continue. Il permet un déploiement continu et réduit le temps consacré aux tests. Cela est possible car dbt cloud supprime la nécessité de pousser un référentiel entier lorsque des changements doivent être déployés. Au lieu de cela, seuls les composants qui doivent être modifiés sont traités. Ensemble, dbt cloud et Git vous permettent d'automatiser les pipelines d'intégration continue, ce qui vous permet de gagner du temps dans la gestion et de simplifier le processus.

Rafraîchissement des données et contrôles de qualité plus simples

Avec dbt cloud, vous n'avez pas besoin d'héberger un outil d'orchestration. Il dispose d'une fonctionnalité qui automatise entièrement la planification des rafraîchissements de production au rythme et à la fréquence que vous souhaitez.

dbt fournit également plusieurs moyens de créer et d'appliquer des contrôles de qualité des données. Il vous permet de créer des contrôles d'intégrité des données lorsque vous créez de la documentation pour un modèle donné. Il propose également une fonction permettant de réaliser des tests de données personnalisés en fonction de la logique de l'entreprise. Enfin, il vous permet de créer des tables d'instantanés qui suivent les modifications apportées aux données. Cette méthode est particulièrement utile lorsqu'il s'agit de données mutables, car elle permet d'accéder à toutes les modifications apportées précédemment aux données sources.

Tests automatisés

dbt permet de tester l'intégrité des données sans effort. Comme dbt vous permet de combiner Jinja avec SQL, vous pouvez transformer votre projet dbt en un environnement de programmation pour SQL, ce qui vous permet de faire des choses que vous ne pouvez normalement pas faire en SQL (par exemple, utiliser des structures de contrôle et des variables d'environnement). dbt permet également l'application d'un test sur une colonne donnée en la référençant simplement dans le même fichier YAML.

Communauté

dbt est un logiciel libre et dispose d'une vaste bibliothèque de documents de référence, de guides d'installation étape par étape et de FAQ.

La communauté open-source de dbt donne également accès aux paquets dbt. Cela signifie que vous pouvez mettre la main sur des bibliothèques de modèles et de macros qui répondent à un problème spécifique auquel quelqu'un d'autre a déjà répondu. 

Quels sont les inconvénients de l'outil dbt ?

  • Vous avez toujours besoin d'outils d'intégration de données pour extraire et charger des données à partir de sources multiples vers votre entrepôt de données, car dbt ne s'occupe que de la partie transformation dans les ELT.
  • Comparé aux outils offrant une interface graphique, dbt peut sembler moins convivial car il est basé sur le langage SQL.
  • Pour les cas où vous devez apporter des modifications au code de base au niveau du backend, vous devez disposer d'une expertise technique suffisante.
  • Pour que le processus de transformation des données soit aussi lisible que possible dans l'interface utilisateur, les data engineers doivent veiller à ce qu'il soit propre et compréhensible.

Pour conclure, en fonction des besoins de votre entreprise, vous pouvez choisir d'opter pour dbt en tant que solution de transformation des données ou pour un codage personnalisé. Comme dbt prend en charge la plupart des data warehouse, vous pouvez rapidement adopter l'outil et commencer à travailler. Cependant, il reste encore une lacune à combler ! Vous devez extraire des données de toutes vos sources et les charger dans votre entrepôt de données. 

Dans les cas où vous avez rarement besoin de répliquer des données, votre équipe d'ingénieurs peut facilement le faire. En revanche, pour les transferts fréquents et massifs de données provenant de sources multiples, votre équipe d'ingénieurs devra constamment surveiller et corriger les fuites de données.