dbt est un outil de transformation de donnée qui permet aux équipes analytiques (Data engineer, Data analyst , Data scientist,..) de déployer du code rapidement et de manière collaborative.
Dans cet article, nous allons vous présenter DBT, quelques fonctionnalités, et surtout pourquoi et quand l’utiliser !
C’est quoi DBT ?
DBT (Data Build Tool) est un outil open source de modélisation de données pour les entrepôts de données (data warehouses). Il permet de faciliter la collaboration entre les équipes de données et d’assurer la cohérence et la qualité des données.
En effet, DBT est un outil de la famille des ELT (Extract, Load and Transform). Il ne s’occupe que du T, c’est-à-dire que toutes les transformations effectuées par DBT se font dans un Data Warehouse.
Imaginez, après avoir ingéré des données dans votre entrepôt de données vous voulez effectuer des transformations supplémentaires. Le processus classique sera d’écrire les requetes SQL permettant d’éffectuer ses transformations. Ensuite créer les tables et/ou les views correspondant à vos besoins.
DBT permet d’automatiser ce processus !
Plus concrètement…
Pour commencer à l’utiliser, il faut d’abord installer 😉 (la procédure d’installation est disponible ici).
Ensuite, il faut créer un projet DBT en spécifiant le chemin d’accès aux fichiers de configuration et aux modèles SQL.
Chaque modèle dans DBT est un fichier .sql qui contient qui est une représentation (as code) d’une table ou d’une view dans le data warehouse. Le moteur de DBT va analyser tous les modèles pour détecter les dépendances afin de créer les différentes transformations dans votre entrepôt de données.
DBT permet également d’automatiser des tests unitaires pour vérifier la cohérence d’un schéma ou tester des résultats de requête. On dispose de 4 assertions pour tester les résultats d’une requête, qui couvrent les domaines suivants : l’unicité, la non nullité, la plage de valeurs acceptée, les relations entre les tables (est-ce qu’une clé étrangère pointe sur une clé primaire existante).
Il est aussi possible d’utiliser des plugins pour des tests plus avancés et/ou apporter des fonctionnalités supplémentaires.
Pour aller plus loin, on peut écrire soi-même ses data tests et utiliser les seeds pour injecter des données. On trouve aussi des macros, qui sont des requêtes qu’on peut étendre avec la librairie Jinja qui permet d’utiliser des templates pour ajouter des boucles et des conditions au SQL natif.
Enfin, on peut avoir la bonne idée de documenter son projet mais aussi stocker des requêtes qui ne seront pas jouées à chaque exécution (appelée analysis).
Quand ne pas utiliser DBT ?
DBT est un outil qui a été spécialement conçu pour les entrepôts de données(Data Warehouse). Pour des projets de plus petite envergure, ou des projets où la transformation des données se fait principalement en dehors du Data Warehouse, d’autres outils d’ETL peuvent être plus adaptés.
Conclusion
En somme, DBT est un outil puissant et flexible pour la transformation de données en SQL. Il permet de gérer les dépendances entre les modèles de données, d’automatiser les tests unitaires et de documenter les projets. DBT est particulièrement utile pour les entrepôts de données qui traitent de grands volumes de données et nécessitent des modèles de données complexes. Avec une documentation complète et une communauté active, Data Build Tool est une solution idéale pour les entreprises qui cherchent à améliorer la qualité et la cohérence de leurs données.
Dans un prochain article nous allons aller présenter l’implémentation d’un projet DBT from scratch!