24 Oct Transformer ses données sans se prendre la tête : le pari de BiiR avec dbt Core
Introduction
Le monde de la donnée évolue à grande vitesse. Les architectures traditionnelles, souvent lourdes et rigides, laissent place à des approches plus agiles, principalement pensée pour des environnements cloud et collaboratives.
Chez BiiR, experts de la data, nous avons souhaité tester et comprendre une technologie déjà très présente : dbt Core, composante incontournable de la Modern Data Stack.
Nous avons décidé d’évaluer sa pertinence à travers un Proof of Concept (POC) concret, en migrant une partie de nos traitements Talend Open Studio vers dbt core. Voici notre retour d’expérience.
Avant de vous dévoiler notre étude, il serait pertinent d’apporter du contexte en définissant les points importants :
La Modern Data Stack, une révolution dans l’architecture data
La Modern Data Stack désigne une architecture moderne et modulaire, entièrement pensée pour le cloud et orientée vers la flexibilité, la collaboration et la rapidité d’évolution.
Principes clés :
- Flexibilité : chaque brique est indépendante et remplaçable. (Architecture sur mesure)
- Scalabilité : la puissance s’adapte à la demande, sans gestion d’infrastructure.
- Accessibilité : les outils sont conçus autant pour les métiers que pour les équipes techniques.
- Gouvernance automatisée : la donnée est documentée, tracée et contrôlée.
Les briques caractéristique d’une Modern Data Stack :
-
- Ingestion : récupération de données de sources hétérogènes (API, fichiers, bases de données, IoT, applications métier…).
- Stockage : centralisation et conservation des données dans un système cible, souvent un Data Warehouse ou un Data Lake (Snowflake, BigQuery, Redshift, etc.).
- Transformation / Modélisation : transformation des données brutes directement au sein du système de stockage, pour les rendre exploitables et conformes aux besoins métiers (via dbt, Airflow, etc.).
- Analyse & Déploiement : valorisation des données à travers des outils de visualisation et de reporting (Power BI, Tableau…) ou opérationnels (CRM, outils marketing, etc.).
- Gouvernance & Sécurité : catalogage, traçabilité et gestion de la conformité des données.
La Modern Data Stack s’appuie largement sur le paradigme ELT, qui redéfinit la manière de transformer les données directement dans les entrepôts cloud.
ELT : la transformation moderne des données
Historiquement, les traitements suivaient le modèle ETL (Extract – Transform – Load) : les données étaient transformées avant d’être chargées dans la base cible.
Le cloud a renversé cette logique avec le modèle ELT (Extract – Load – Transform) : les données brutes sont chargées dans la base de donnée cible, puis transformées directement à l’intérieur de celle-ci grâce à sa puissance de calcul.
Avantages du modèle ELT :
- Scalabilité accrue grâce aux ressources cloud.
- Les données sont chargées rapidement et transformées à la demande selon les besoins métiers.
- Flexibilité pour explorer et ajuster les modèles à la volée.
C’est dans cette approche qu’intervient dbt Core, une solution pensée pour la Transformation des données. L’outil ne gère ni l’extraction ni le chargement.
dbt Core : structurer et automatiser la transformation des données
Un pilier de la moderne data stack
dbt Core (data build tool) est un outil open source rependu des architectures data modernes.
Son rôle : orchestrer les transformations de données directement dans le data warehouse, selon une logique ELT (Extract – Load – Transform).
Il ne s’occupe ni de l’extraction ni du chargement, mais optimise la phase de transformation, en tirant parti de la puissance de calcul de l’entrepôt sans ajouter d’infrastructure supplémentaire.
dbt Core se connecte à la plupart des entrepôts de données du marché (Snowflake, BigQuery, Redshift, Databricks, PostgreSQL, etc.), grâce à un large écosystème d’adaptateurs open source.
Une approche “développeur” de la data : prémices du rôle d’Analytics Engineer
dbt Core se distingue par son approche orientée code, loin des interfaces visuelles classiques.
Les transformations sont écrites en SQL, organisées dans une arborescence de fichiers claire et versionnées via des outils de CI/CD, à l’image des projets logiciels.
Cette philosophie “software engineering” appliquée à la data introduit de bonnes pratiques dans la modélisation analytique :
-
- Modularité : Les macros Jinja permettent d’injecter de la logique Python dans le SQL, rendant les transformations dynamiques, paramétrables et réutilisables.
- Fiabilité : les tests automatiques (intégrés ou personnalisés) garantissent la qualité des données
- Collaboration : En intégrant Git et les principes de CI/CD, dbt rapproche les pratiques data de celles du développement logiciel, permettant aux équipes d’analystes et de data engineers de travailler ensemble.
- Documentation intégrée : générée automatiquement à partir des modèles et paramétrables pour ajouter de la précision.
Un outil léger mais puissant
dbt Core repose sur un moteur Python open source, piloté via une interface en CLI (ligne de commande).
Quelques commandes suffisent pour créer un projet, exécuter les modèles, lancer les tests ou générer la documentation.
Il s’installe simplement à l’image d’une librairie python classique (version python 3.8 ou plus), avec un adaptateur spécifique à l’entrepôt de données utilisé (PostgreSQL, Snowflake, BigQuery, Redshift, Databricks, etc.).
Une fois configuré, dbt orchestre des requêtes SQL directement dans le data warehouse, produisant des vues, tables matérialisées ou tables incrémentales, selon les besoins.
Cette approche “SQL-first” repose sur trois briques complémentaires :
-
- SQL, pour décrire les transformations et la logique métier ;
- YAML, langage de configuration, permettant définir les sources, les tests et la documentation ;
- Jinja, syntaxe de template basée sur du python permettant d’introduire de la logique réutilisable (macros, variables, conditions).
L’ensemble permet de construire des pipelines robustes, performants et maintenables, en tirant parti de la puissance du warehouse sans infrastructure supplémentaire.
Enfin, dbt génère automatiquement un graphe DAG (Directed Acyclic Graph), qui visualise les dépendances entre modèles et facilite la compréhension et le débogage des flux de données.
Composition d’un projet dbt core
Un projet dbt s’organise autour d’une arborescence claire et standardisée, qui reflète les différentes étapes du pipeline de transformation.
Chaque dossier a un rôle précis :
-
- models/ : contient les fichiers SQL décrivant les transformations de données.
- tests/ : regroupe les règles de qualité (unicité, non-nullité, cohérence entre tables).
- macros/ : stocke les fonctions réutilisables écrites en Jinja, permettant de factoriser le code SQL.
- snapshots/ : conserve l’historique des tables, utile pour suivre l’évolution des données dans le temps.
- seeds/ : héberge les tables de référence statiques ou de paramétrage.
- logs/ et target/ : contiennent respectivement les journaux d’exécution et les fichiers compilés.
La définition du projet repose sur plusieurs fichiers YAML qui décrivent les modèles, les sources et les tests associés.
Le fichier central dbt_project.yml définit la structure globale, les chemins et les paramètres de compilation, tandis que profiles.yml gère la connexion à la base de données.
Cette structuration permet d’appliquer les bonnes pratiques du développement logiciel à la transformation de données : code versionné et organisé, documentation intégrée et tests automatisés.
Pourquoi les équipes data l’adoptent
En standardisant les transformations SQL, dbt Core :
-
- simplifie la gouvernance et la traçabilité des flux de données ;
- s’intègre parfaitement à l’architecture modulaire de la moderne data stack;
- favorise une culture data agile et collaborative.
De plus, l’outil bénéficie d’une communauté très active, apportant des packages permettant d’élargir les possibilités de dbt core.
POC BiiR : migrer un flux Talend vers dbt Core
Objectif
Plutôt que de rester sur une approche théorique, nous avons voulu confronter dbt Core à un cas concret pour en mesurer les apports et les limites.
L’idée : remplacer une partie de notre reporting interne, historiquement construit avec Talend Open Studio, par une architecture plus moderne, basée sur Python pour l’ingestion et dbt Core pour la transformation. L’enjeu n’était pas de tout réinventer, mais de valider l’efficacité, la maintenabilité et la simplicité de ce nouvel écosystème dans un contexte opérationnel.
Stack technique mise en place
Nous avons opté pour une architecture minimale mais représentative, afin de concentrer le POC sur la mise en œuvre de dbt Core plutôt que sur la complexité de l’écosystème.

| Etape | Avant (Talend) | Après (dbt Core) |
|---|---|---|
| Extraction | Talend (API, fichiers, copy data) | Scripts Python (API, fichiers, copy data) |
| Stockage | SQL server | PostgreSQL |
| Transformation | Talend | dbt Core |
| Visualisation | Power BI | Power BI |
| Orchestration | Intégrée à Talend | Scheduling Python (cron / scripts) |
Notre étude
| Axe évalué | Questions clés | Resultats observés |
|---|---|---|
| Facilité de prise en main | La solution est-elle abordable pour tout profil technique ? | Quelques notions techniques, notamment liées à l’environnement Python et à la structuration du projet dbt, requièrent une courte phase d’apprentissage, mais la documentation détaillée facilite grandement la prise en main. |
| Facilité de migration | Quelle complexité pour transposer un flux Talend existant vers dbt Core ? | Migration fluide : la logique métier s’est transposée facilement en SQL. Le SQL permet une meilleure lisibilité et maintenabilité du processus. |
| Simplicité de mise en place | L’installation, la configuration et la prise en main sont-elles accessibles ? | Installation rapide et intuitive. Solution très documentée. dbt Core s’intègre facilement à une chaîne existante (Python + PostgreSQL + Power BI). |
| Richesse fonctionnelle | Quelles fonctionnalités natives améliorent la qualité et la gestion des modèles ? | dbt intègre nativement les tests, la documentation et les snapshots. Ces outils renforcent la qualité, la fiabilité et la gouvernance des données. |
| Maintenabilité du code | Le projet est-il structuré, traçable et collaboratif ? | Le trio SQL + YAML + Jinja structure le projet et le rend lisible. Le versioning Git facilite le suivi et la collaboration entre équipes. |
| Modularité et adaptabilitée | dbt facilite-t-il la réutilisation et la gestion multi-environnements ? | Grâce aux macros Jinja et à une configuration souple, dbt permet de réutiliser les modèles et de gérer facilement plusieurs environnements (dev, test, prod). |
Conclusion
Ce POC nous a permis de confirmer la pertinence de dbt Core dans une architecture data moderne.
Son approche SQL-first s’est révélée efficace : les transformations sont lisibles, faciles à maintenir et compréhensibles par l’ensemble de l’équipe, qu’il s’agisse d’ingénieurs, d’analystes ou de profils métiers.
La documentation automatique et les tests intégrés renforcent la qualité et la traçabilité, tandis que le versioning Git apporte une rigueur bienvenue inspirée du développement logiciel.
Sur le plan technique, la combinaison Python + dbt + PostgreSQL facilite le déploiement tout en garantissant une architecture souple et pérenne.. Elle permet de s’affranchir d’un ETL graphique tout en favorisant une approche plus transparente et plus légère de la transformation de données.
Bien sûr, dbt Core n’est pas une solution clé en main. Il faut penser orchestration, tests, et gestion d’environnements (dev, test, prod) dès le départ.
Mais une fois ces fondations posées, la chaîne gagne en lisibilité, en robustesse et en agilité par rapport à une approche ETL classique.
Chez BiiR, cette expérimentation nous a permis de consolider notre expertise sur les usages concrets de dbt : comment le positionner dans un écosystème existant, comment l’orchestrer, et surtout comment le faire vivre dans la durée.
Nous accompagnons désormais nos clients dans la mise en place ou l’évolution de leur stack de transformation, en les aidant à tirer le meilleur de dbt Core aux côtés d’autres solutions (Python, orchestration, monitoring, visualisation). dbt Core constitue une solution robuste et efficace pour industrialiser la transformation de vos données.