SQL Academy · Les

Basis van DBT (Data Build Tool)

Modelleer datawarehousegegevens als SELECT-instructies in dbt, met refs, sources en incrementele modellen.

Les 1 van 414 stappen

Basis van DBT (Data Build Tool) is een gratis SQL Academy-les op CoddyKit. Dit is les 1 van 4. Je kunt de volledige les hieronder gratis lezen en daarna in de browser praktisch oefenen met een ingebouwde code-editor en een AI-begeleider die 24/7 beschikbaar is. Deze les maakt deel uit van het leertraject SQL Academy. Je voortgang wordt gesynchroniseerd op het web en in de CoddyKit-app. De cursus SQL Academy bevat in totaal 4 lessen.

Wat dbt is

dbt is de "T" in ELT: het transformeert gegevens in je datawarehouse met SELECT-instructies. Je definieert modellen (SELECT-instructies) en dbt materialiseert ze als tabellen of weergaven, beheert afhankelijkheden en voert tests uit.

Waarom dbt?

Vóór dbt stonden transformaties in losse SQL-scripts, opgeslagen procedures of Python-taken. dbt biedt:

  • Modulaire SQL als code, met versiebeheer in Git
  • Een afhankelijkheidsgraaf (ref()) in plaats van handmatige volgorde
  • Tests als volwaardige objecten
  • Documentatie genereren

Projectstructuur

Een dbt-project:

my_project/
  dbt_project.yml
  models/
    staging/
      stg_orders.sql
    marts/
      fct_revenue.sql
  tests/
  seeds/
  macros/

Een modelbestand

Gewoon een SELECT in een .sql-bestand:

-- models/staging/stg_orders.sql
{{ config(materialized='view') }}
SELECT
  id,
  user_id,
  total,
  created_at
FROM {{ source('raw', 'orders') }}

Materialisatietypen

  • view — dbt maakt een VIEW; snel bij te werken, trager om te bevragen
  • table — volledige tabel; bij elke uitvoering opnieuw opgebouwd
  • incremental — alleen nieuwe rijen worden toegevoegd
  • ephemeral — inline CTE, geen databaseobject

ref() en afhankelijkheden

Verwijs van het ene model naar het andere:

-- models/marts/fct_revenue.sql
SELECT
  date_trunc('day', created_at) AS day,
  SUM(total) AS revenue
FROM {{ ref('stg_orders') }}
GROUP BY 1

dbt uitvoeren

Bouw het hele project:

dbt run                    # build all models
dbt run --select staging   # subset
dbt run --select +fct_revenue   # this model and upstream
dbt build                   # run + test

Bronnen

Bronnen documenteren de onbewerkte tabellen en verwijzen ernaar:

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

Incrementele modellen

Voor enorme feitentabellen:

{{ config(materialized='incremental', unique_key='id') }}
SELECT *
FROM {{ source('raw','orders') }}
{% if is_incremental() %}
  WHERE created_at > (SELECT MAX(created_at) FROM {{ this }})
{% endif %}

Jinja-sjablonen

dbt is SQL + Jinja, dus je kunt lussen gebruiken en voorwaardelijk SQL genereren:

{% 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

Momentopnamen

Dimensies die langzaam veranderen automatisch vastleggen:

{% snapshot user_snapshot %}
  {{ config(
    target_schema='snapshots',
    unique_key='id',
    strategy='timestamp',
    updated_at='updated_at',
  ) }}
  SELECT * FROM {{ source('raw','users') }}
{% endsnapshot %}

Documentatie

Genereer automatisch doorzoekbare documentatie op basis van je modellen en YAML-beschrijvingen:

dbt docs generate
dbt docs serve     # opens browser

Samenvatting

dbt modelleert datatransformaties als SQL-code.

  • Model = SELECT in een .sql-bestand
  • ref() bouwt de DAG
  • Materialisaties: view / table / incremental / ephemeral
  • Tests en documentatie als volwaardige onderdelen

Kennischeck

Wat doet {{ ref('stg_orders') }} van dbt?

Gratis beginnen

Leer SQL met een AI-tutor — gratis

Schrijf echte code en voer die uit in je browser, krijg direct hulp van een AI-tutor die 24/7 beschikbaar is en ga verder waar je gebleven bent op het web of in de app.

Cursussen
46
Lessen
183

Veelgestelde vragen

Is de les “Basis van DBT (Data Build Tool)” gratis?

Ja — de volledige tekst van “Basis van DBT (Data Build Tool)” kun je hier gratis op het web lezen. Als je interactief wilt oefenen met een ingebouwde code-editor en een AI-begeleider die 24/7 beschikbaar is, en de rest van de cursus SQL Academy wilt ontgrendelen, kun je upgraden naar CoddyKit PRO. De cursus SQL Academy bevat in totaal 4 lessen.

Wat leer ik in “Basis van DBT (Data Build Tool)”?

Modelleer datawarehousegegevens als SELECT-instructies in dbt, met refs, sources en incrementele modellen. Je oefent met SQL Academy door code rechtstreeks in de browser uit te voeren. Een AI-begeleider die 24/7 beschikbaar is beantwoordt je vragen terwijl je de les doorwerkt.

Heb ik ervaring nodig om met SQL Academy te beginnen?

Ervaring vooraf is niet nodig. SQL Academy op CoddyKit is opgebouwd voor beginners tot gevorderden, zodat je hier of bij het begin kunt starten en in je eigen tempo kunt leren. Dit is les 1 van 4.

Hoe lang duurt de les “Basis van DBT (Data Build Tool)”?

De meeste lessen van CoddyKit duren ongeveer 5–10 minuten. Elke les is kort en interactief, zodat je gestaag vooruitgaat en op het web en in de app precies verdergaat waar je was gebleven.

Kan ik code schrijven en uitvoeren in deze les over SQL Academy?

Ja. Elke les over SQL Academy bevat een ingebouwde code-editor, zodat je rechtstreeks in je browser echte code kunt schrijven en uitvoeren en direct feedback van AI krijgt — lokale installatie is niet nodig.

Alle lessen in deze cursus

  1. Basis van DBT (Data Build Tool)
  2. SQLFluff en linting
  3. SQL testen: dbt-tests, Great Expectations
  4. CI voor schemamutaties (GitHub Actions)
← Terug naar SQL Academy