Data Build Tool, aka DBT, est un environnement open source écrit sous Python, de transformation de données de type ELT (Extraction Load Transformation). L'outil DBT permet aux utilisateurs de réaliser uniquement des transformations dans l’entrepôt de données avec du SQL en table ou vue.

Data Build Tool

Il existe deux manières de travailler avec DBT :

  • DBT Cloud : En utilisant l’environnement de développement sur le WEB (version payante).
  • DBT Core : Interface en ligne commande. DBT CLI peut-être facilement être installé sur votre poste de travail. Il faudra préalablement installer Git for Windows ainsi que Python 3.5 au minimum, car le répertoire est dans GitHub. Cette version est gratuite.

2 prérequis pour utiliser DBT :

  • Maîtriser le langage SQL
  • Maîtriser les commandes GIT

Les principaux composants et structures de Data Build Tool

Dans DBT, il existe plusieurs répertoires dans un projet :

  • Le dossier models contient les scripts SQL afin d’exécuter le modèle. Les modèles sont des instructions SQL générant des données selon le type de matérialisation (vue, table, table temporaire, incrémentielle) dans le data warehouse.
  • Les fichiers.yml sont des fichiers de configurations. Ces derniers paramètrent la configuration des modèles pour gérer la bonne connexion aux données. Il y a 3 fichiers YAML à connaître :
    • dbt_project.yml : chaque projet DBT a un fichier dbt_project.yml associé. Ce fichier permet à DBT de reconnaître si un répertoire est un projet DBT.
    • profil.yml : Pour utiliser DBT CLI, il faut en plus définir le profil de l’utilisateur dans un fichier yml en renseignant, selon le type de la base de données, l’environnement de développement, la base cible, le schéma utilisé, la méthode d’authentification… On peut définir plusieurs profils selon l’utilisation
    • schema.yml : Ce fichier comprend des tests de schéma qui déterminent si les colonnes spécifiées ont des valeurs uniques, n’ont pas de valeurs Null, ont uniquement les valeurs spécifiées.
  • Le dossier seeds contient les fichiers .csv que dbt peut charger dans la base de données et contrôler leur version.
  • Le dossier snapshot permet de mettre en place des dimensions à variation lente de types 2 (SCD type 2).
  • Le répertoire macros contient des morceaux de codes ou des fonctions dans des fichiers .SQL permettant de réutiliser les scripts du modèle et éviter la répétition de long bout de code.
  • Le répertoire tests permet d’exécuter des tests sur vos modèles et vous signale après l’exécution si le(s) test(s) est / sont OK.

Type de matérialisation de modèles dans DBT

La matérialisation est une variable contrôlant la création du modèle. Par défaut, le modèle sera une vue mais il en existe 4 types :

  • View : le modèle est construit sous forme de vue dans la base de données.
  • Table : le modèle est construit sous forme de table dans la base de données.
  • Ephemeral : table temporaire.
  • Incremental : permet d’insérer ou de mettre à jour des lignes.

Connexion aux bases de données

DBT prend en charge nativement les connexions aux data cloud platform suivantes :

  • Big Query
  • Snowflake
  • Amazon RedShift
  • Postgre

D’autre part, DBT est un outil open source. La communauté a mis à disposition des connecteurs pour pouvoir se connecter à une multitude de base de données.

Avantages de Data Build Tool

DBT CLI est un ELT gratuit pouvant se connecter à une multitude de bases de données et donc bénéficier de la puissance des DataWarehouses.

  • Flexibilité des modèles SQL
  • Le référentiel étant sur Github, le versionning et l'échange de projet sont simplifiés
  • Changement d’environnement simple (dev, prod)
  • Bonne gestion de la documentation

Mode de fonctionnement de DBT

Comme vu précédemment, il y a deux versions de DBT.

Ci-dessous les étapes de création d’un projet DBT-Core qui est la version gratuite sur Windows :

  • Créer le référentiel du projet sur Github
  • Cloner le dossier du projet en local
  • Ouvrir le terminal et créer un environnement virtuel python
  • Activer l’environnement
  • Installer dbt-core
  • Initier votre projet avec la commande dbt init
  • Configurer votre profil afin de vous connecter à la base de données
  • Développer vos transformations avec des fichier .sql
  • Exécuter vos transformations avec la commande dbt run
  • Commit puis push votre répertoire

Il est conseillé de développer les projets DBT-Core sur l’éditeur de code Visual Studio Code du fait de ses fonctionnalités d’assistance aux développements, de débogage et de son interface intuitive. De plus, cet éditeur de code gratuit et Open Source intègre GIT et un terminal.

Dans quels cas utiliser Data Build Tool ?

  • Gestion des transformations dans les bases de données
  • Tests de la qualité de données
  • Analyse de données

Retour aux éditeurs ETL

Vous souhaitez bénéficier d'experts, de développeurs ou d'une formation sur DBT ? Rendez vous sur la page Contact

Des par des consultants BI de Nantes, Paris, Lyon, Angers, Paris, Le Mans, Lille, Brest, Rennes, Niort, Laval, Lyon, Grenoble, Agen, Bayonne, Montpellier, Saint-Etienne, Bordeaux, Toulouse, La Rochelle, Nîmes, Marseille, Aix-en-provence...

Next Decision vous accompagne sur l'ETL DBT en Région Parisienne, île de france, Nord, Bretagne, Normandie, Nouvelle-Aquitaine, Midi-Pyrénées, Pays de la Loire, et Provence-Alpes-Côte d'Azur, Occitanie.