0Pricing
SQL Academy · Leçon

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 1

Exé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 + test

Sources

Les sources documentent et référencent les tables brutes :

# models/sources.yml
sources:
  - name: raw
    database: warehouse
    tables:
      - name: orders

Modè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_id

Instantané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 browser

Ré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

  1. Fondamentaux de DBT (Data Build Tool)
  2. SQLFluff et analyse de style
  3. Tester le SQL : tests dbt et Great Expectations
  4. CI pour les modifications de schéma (GitHub Actions)
← Retour à SQL Academy