SF34618
2 jours
En présentiel ou distanciel
- 14 heures de formation
- Exercices pratiques
- Prise en charge OPCO possible
Un renseignement ?
Contactez-nous !- En entreprise ou à distance
- Cadrage pédagogique gratuit
- Programme de formation sur mesure
- Formateur expert dédié
- Prise en charge OPCO possible
Formation 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.
dbt (data build tool) est devenu l'outil de référence du Modern Data Stack pour transformer les données directement dans le data warehouse, en SQL. Cette formation de 2 jours vous apprend à structurer un projet dbt de bout en bout : modèles, sources, matérialisations adaptées, snapshots pour l'historisation, tests automatisés et documentation avec lineage. Vous manipulerez Jinja et les macros pour rendre vos transformations dynamiques et réutilisables, puis intégrerez les packages de l'écosystème dbt. À l'issue de la formation, vous saurez concevoir et faire évoluer un projet dbt selon les conventions staging / intermediate / marts reconnues par la communauté, et aborder sereinement le passage en production.
Programme de formation dbt : industrialiser vos transformations de données en SQL.
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
**Exemples d’activités pratiques :**
– 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)
**Exemples d’activités pratiques :**
– 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
**Exemples d’activités pratiques :**
– 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`
**Exemples d’activités pratiques :**
– É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`
**Exemples d’activités pratiques :**
– 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)
**Exemples d’activités pratiques :**
– 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
Nos autres formations en Big Data .
Formation Airflow
Formation Apache Kafka
Formation Apache NiFi
Formation Bases de données NoSQL : introduction, enjeux et panorama des solutions
Formation Big Data – Sécurité des données
Formation Big Data : état de l’art
A travers sa Charte Engagement Qualité, Sparks s’engage à tout mettre en œuvre pour que chaque session de formation soit un succès et que votre satisfaction soit totale.
