Fondamentaux de DBT (Data Build Tool)
Modélisez les données d’un entrepôt sous forme d’instructions SELECT dans dbt, avec des références, des sources et des modèles incrémentiels.
Fondamentaux de DBT (Data Build Tool) est une leçon SQL Academy gratuite sur CoddyKit. Ceci est la leçon 1 sur 4. Tu peux lire la leçon complète ci-dessous gratuitement — puis la pratiquer en direct dans le navigateur avec un éditeur de code intégré et un tuteur IA 24/7. Elle fait partie du parcours d'apprentissage SQL Academy, et ta progression se synchronise sur le web et l'application CoddyKit. Le cours SQL Academy comprend 4 leçons au total.
Qu’est-ce que dbt ?
dbt est le « T » de ELT : il transforme les données dans votre entrepôt à l’aide d’instructions SELECT. Vous définissez des modèles (SELECT), puis dbt les matérialise sous forme de tables ou de vues, gère les dépendances et exécute les tests.
Pourquoi dbt ?
Avant dbt, les transformations se trouvaient dans des scripts SQL ponctuels, des procédures stockées ou des tâches Python. dbt apporte :
- Du SQL modulaire sous forme de code, versionné dans Git
- Un graphe de dépendances (ref()) au lieu d’un ordonnancement manuel
- Des tests comme objets de premier ordre
- La génération de documentation
Structure du projet
Un projet dbt :
my_project/
dbt_project.yml
models/
staging/
stg_orders.sql
marts/
fct_revenue.sql
tests/
seeds/
macros/Un fichier de modèle
Simplement un SELECT dans un fichier .sql :
-- models/staging/stg_orders.sql
{{ config(materialized='view') }}
SELECT
id,
user_id,
total,
created_at
FROM {{ source('raw', 'orders') }}Types de matérialisation
- view — dbt crée une VIEW ; mise à jour rapide, interrogation plus lente
- table — table complète, reconstruite à chaque exécution
- incremental — seules les nouvelles lignes sont ajoutées
- ephemeral — CTE intégré, sans objet de base de données
ref() et dépendances
Référencez un modèle depuis un autre :
-- models/marts/fct_revenue.sql
SELECT
date_trunc('day', created_at) AS day,
SUM(total) AS revenue
FROM {{ ref('stg_orders') }}
GROUP BY 1Exécuter dbt
Construisez l’ensemble du projet :
dbt run # build all models
dbt run --select staging # subset
dbt run --select +fct_revenue # this model and upstream
dbt build # run + testSources
Les sources documentent et référencent les tables brutes :
# models/sources.yml
sources:
- name: raw
database: warehouse
tables:
- name: ordersModèles incrémentiels
Pour les très grandes tables de faits :
{{ config(materialized='incremental', unique_key='id') }}
SELECT *
FROM {{ source('raw','orders') }}
{% if is_incremental() %}
WHERE created_at > (SELECT MAX(created_at) FROM {{ this }})
{% endif %}Gabarits Jinja
dbt est du SQL associé à Jinja ; vous pouvez donc parcourir des éléments en boucle et générer conditionnellement du SQL :
{% set tiers = ['free','pro','enterprise'] %}
SELECT user_id,
{% for t in tiers %}
COUNT(*) FILTER (WHERE tier = '{{ t }}') AS {{ t }}_count {% if not loop.last %},{% endif %}
{% endfor %}
FROM users GROUP BY user_idInstantanés
Dimensions à évolution lente capturées automatiquement :
{% snapshot user_snapshot %}
{{ config(
target_schema='snapshots',
unique_key='id',
strategy='timestamp',
updated_at='updated_at',
) }}
SELECT * FROM {{ source('raw','users') }}
{% endsnapshot %}Documentation
Générez automatiquement une documentation consultable à partir de vos modèles et de leurs descriptions YAML :
dbt docs generate
dbt docs serve # opens browserRécapitulatif
dbt modélise les transformations de données sous forme de code SQL.
- Modèle = SELECT dans un fichier .sql
- ref() construit le DAG
- Matérialisations : view / table / incremental / ephemeral
- Tests et documentation comme éléments de premier ordre
Vérification rapide
Que fait {{ ref('stg_orders') }} de dbt ?
Questions Fréquemment Posées
La leçon « Fondamentaux de DBT (Data Build Tool) » est-elle gratuite ?
Oui — le texte complet de « Fondamentaux de DBT (Data Build Tool) » est gratuit à lire ici sur le web. Pour la pratiquer de manière interactive (un éditeur de code intégré et un tuteur IA 24/7) et déverrouiller le reste du cours SQL Academy, passe à CoddyKit PRO. Le cours SQL Academy comprend 4 leçons au total.
Qu'est-ce que j'apprendrai dans « Fondamentaux de DBT (Data Build Tool) » ?
Modélisez les données d’un entrepôt sous forme d’instructions SELECT dans dbt, avec des références, des sources et des modèles incrémentiels. Tu pratiques SQL Academy avec du code pratique que tu exécutes directement dans le navigateur, et un tuteur IA 24/7 répond à tes questions au fur et à mesure que tu avances dans la leçon.
Dois-je avoir de l'expérience pour commencer SQL Academy ?
Aucune expérience préalable n'est requise. SQL Academy sur CoddyKit est structuré pour les débutants jusqu'aux apprenants avancés, donc tu peux commencer ici ou depuis le début et avancer à ton rythme. Ceci est la leçon 1 sur 4.
Combien de temps prend la leçon « Fondamentaux de DBT (Data Build Tool) » ?
La plupart des leçons CoddyKit prennent environ 5–10 minutes. Chacune est courte et interactive, tu progresses régulièrement et tu repiques exactement où tu t'es arrêté sur le web et l'app.
Peux-tu écrire et exécuter du code dans cette leçon SQL Academy ?
Oui. Chaque leçon SQL Academy inclut un éditeur de code intégré, tu écris et exécutes du vrai code directement dans ton navigateur et tu reçois des retours IA instantanés — aucune configuration locale requise.
Toutes les leçons de ce cours
- Fondamentaux de DBT (Data Build Tool)
- SQLFluff et analyse de style
- Tester le SQL : tests dbt et Great Expectations
- CI pour les modifications de schéma (GitHub Actions)