Accueil > Formations > Intelligence artificielle & Data Science > Data Engineering & Big Data > dbt : industrialiser vos transformations de données en SQL
dbt : industrialiser vos transformations de données en SQL
Passez d'une collection de scripts SQL épars à une chaîne de transformations versionnée, testée et documentée, suivant les pratiques de l'ingénierie logicielle.
Vue d'ensemble
- Maîtrise solide de SQL (jointures, agrégations, CTE, sous-requêtes)
- Familiarité avec un data warehouse (BigQuery, Snowflake, PostgreSQL ou Redshift)
- Bases de Git (clone, commit, branche)
Objectifs pédagogiques
Programme détaillé
Fondamentaux de dbt et du Modern Data Stack
– Modern Data Stack : positionnement de dbt dans la chaîne data (ingestion, stockage, transformation, restitution)
– ELT vs ETL : pourquoi la transformation se déplace dans le data warehouse
– dbt Core vs dbt Cloud : différences d’usage, arbitrage selon le contexte projet
– Rôle de l’Analytics Engineer : pratiques issues de l’ingénierie logicielle appliquées au SQL
– Tour d’horizon des composants du Modern Data Stack sur un exemple concret
– Comparaison d’un pipeline ETL classique et d’un pipeline ELT avec dbt
Mise en route d'un projet dbt
– Installation et configuration de l’environnement de développement
– `profiles.yml` et `dbt_project.yml` : configurer la connexion et les paramètres du projet
– Arborescence d’un projet dbt : dossiers `models`, `seeds`, `snapshots`, `macros`, `tests`
– Commandes de base : `dbt debug`, `dbt run`, `dbt compile`, `dbt build`
– Connexion à un data warehouse (BigQuery, Snowflake, PostgreSQL ou Redshift)
– Création d’un projet dbt connecté à un data warehouse
– Exécution d’un premier modèle de staging sur une table brute
– Exploration des artefacts générés (`target/`, `manifest.json`)
Modèles, sources et matérialisations
– Modèles dbt : écriture en SQL, bonnes pratiques de nommage
– Sources : déclaration YAML des tables brutes, `{{ source() }}` pour les référencer
– Références entre modèles : `{{ ref() }}` et gestion automatique des dépendances (DAG)
– Matérialisations : view, table, incremental, ephemeral — choisir selon le cas d’usage
– Conventions de structuration : staging / intermediate / marts
– Seeds : intégrer des données de référence versionnées dans le projet
– Construction d’un flux staging → intermediate → marts sur un jeu de données CRM (clients, commandes, produits)
– Comparaison des matérialisations view / table / incremental sur un même modèle
– Ajout d’un seed de référentiel et intégration dans un modèle
Transformations dynamiques avec Jinja et macros
– Syntaxe Jinja dans dbt : variables, blocs, filtres, expressions conditionnelles
– Modèles dynamiques : générer du SQL paramétré (filtrage conditionnel, pivots, boucles)
– Macros : créer des fonctions SQL réutilisables à l’échelle du projet
– Variables de projet : paramétrer un pipeline selon l’environnement
– Hooks : exécuter du code avant ou après un `dbt run`
– Écriture d’un modèle dynamique avec conditions Jinja
– Création d’une macro pour un calcul transverse (normalisation, cast, formatage)
– Mise en place d’un pre-hook ou post-hook sur un modèle
Fiabilisation : snapshots, tests et documentation
– Snapshots : historiser les évolutions (SCD type 2) sur des dimensions à évolution lente
– Tests built-in : `not_null`, `unique`, `relationships`, `accepted_values`
– Tests personnalisés : écrire des assertions SQL adaptées au métier
– Documentation YAML : décrire modèles, colonnes, sources
– Lineage graph : visualiser les dépendances avec `dbt docs generate` et `dbt docs serve`
– Mise en place d’un snapshot sur une table de dimensions (ex. clients)
– Ajout d’une suite de tests couvrant les modèles d’un flux complet
– Génération et exploration de la documentation et du lineage du projet
Écosystème et passage en production
– Packages dbt Hub : installer et utiliser `dbt_utils`, `codegen`, packages tiers
– Organisation d’un projet à l’échelle : conventions de nommage, structuration des dossiers
– Environnements multiples : configuration dev / prod, targets, schemas isolés
– Introduction à dbt Cloud : interface, scheduler, déclencheurs
– Introduction à la CI/CD : exécution de `dbt run` et `dbt test` sur pull request (GitHub Actions)
– Installation et exploitation de `dbt_utils` pour simplifier des modèles existants
– Configuration de deux environnements (dev / prod) avec des targets distincts
– Mise en place d’un workflow GitHub Actions exécutant `dbt build` sur pull request
Prochaines sessions
Avis des participants
Formation claire, structurée et directement applicable. Le formateur a pris le temps de répondre à toutes nos questions avec des exemples concrets.
Très bon équilibre entre théorie et pratique. Les exercices permettent de comprendre rapidement les concepts et de les mettre en œuvre.
Un formateur expérimenté, pédagogue et disponible. Je repars avec des méthodes et des outils que je peux utiliser immédiatement dans mon travail.
Le contenu était dense, mais très bien expliqué. Le rythme a été adapté au niveau du groupe et chacun a pu progresser.
Financement
Cette formation est éligible aux financements OPCO et FNE-Formation. Nos équipes vous accompagnent dans le montage de votre dossier.
En savoir plus sur le financementDes formateurs experts, reconnus par nos apprenants
Chez Sparks Formation, la qualité de nos formations repose sur l'expertise de nos formateurs et la satisfaction de nos apprenants.
Note moyenne attribuée par les participants à nos formateurs
formateurs experts partenaires
Sparks Formation
sujets IT délivrés chaque jour partout en France
