Basis van DBT (Data Build Tool)
Modelleer datawarehousegegevens als SELECT-instructies in dbt, met refs, sources en incrementele modellen.
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 1dbt 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 + testBronnen
Bronnen documenteren de onbewerkte tabellen en verwijzen ernaar:
# models/sources.yml
sources:
- name: raw
database: warehouse
tables:
- name: ordersIncrementele 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_idMomentopnamen
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 browserSamenvatting
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?
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
- Basis van DBT (Data Build Tool)
- SQLFluff en linting
- SQL testen: dbt-tests, Great Expectations
- CI voor schemamutaties (GitHub Actions)