Het probleem dat dbt oplost

Stel je een datawarehouse voor vol met SQL-query's die in de loop van drie jaar door verschillende analisten zijn geschreven. Honderden gebelde weergaven final_v3_DEFINITIVO_bis, berekeningslogica gedupliceerd tien verschillende plaatsen, geen tests om de datakwaliteit te garanderen, en geen documentatie over wat die column werkelijk betekent net_revenue_adjusted.

Dit is voor de meeste teams het uitgangspunt voor 2026. En dat is ook precies zo het probleem dat dbt (tool voor het bouwen van gegevens) het is ontworpen om op te lossen.

dbt is geen nieuwe ETL-tool, het is geen pijplijnorkestrator en het is geen data magazijn. Het is een hulpmiddel transformatie: neemt gegevens over die al in het magazijn en transformeert deze in gebruiksklare analytische modellen, met behulp van SQL en praktijken van software-engineering.

ELT versus ETL: waarom de wereld is veranderd

Decennia lang was het dominante paradigma ETL: Extract, Transformeren, Laden. De data werd uit de bronnen gehaald en omgezet in een tussenlaag (vaak op dedicated servers) en vervolgens al in de definitieve vorm in het datawarehouse geladen.

De komst van clouddatawarehouses zoals Sneeuwvlokken, BigQuery e Amazone roodverschuiving hij zette deze logica op zijn kop. Deze systemen beschikken over rekenkracht vrijwel onbeperkt en zeer lage opslagkosten. Het heeft geen zin meer om data te transformeren Voor om ze te laden: het is beter om ze rauw te laden en te transformeren Na, rechtstreeks in de magazijn. Zo werd ELT geboren.

ELT versus ETL: het fundamentele verschil

  • ETL: transformatie buiten het magazijn (dedicated server, Spark, Talend) — duur, rigide, moeilijk te debuggen
  • ELT: Transformatie binnen het magazijn (native SQL) — schaalbaar, kosteneffectief, gemakkelijker te testen en te documenteren
  • dbt is de ELT-tool bij uitstek: het behandelt de T van ELT met software-engineering

Wat is dbt in beton

dbt is een opdrachtregel- (en cloud-)tool waarmee u:

  • Schrijf SQL-transformaties als Modellen waarvan een versie is gemaakt in Git
  • Definiëren automatische afhankelijkheden tussen modellen met de macro ref()
  • Toevoegen kwaliteitstesten naar de gegevens rechtstreeks in de code
  • Automatisch genereren documentatie en afstammingsgrafiek
  • Doe dit allemaal in één CI/CD-pijplijn

Een dbt-sjabloon is eenvoudigweg een SQL-bestand met een SELECT. dbt materialiseert het in het magazijn als weergave, tabel of incrementele tabel, afhankelijk van uw configuratie.

-- models/marts/finance/orders_daily.sql
-- dbt materializza questo come una tabella nel warehouse

SELECT
    DATE_TRUNC('day', created_at) AS order_date,
    SUM(total_amount) AS revenue,
    COUNT(*) AS order_count,
    AVG(total_amount) AS avg_order_value
FROM {{ ref('stg_orders') }}          -- ref() crea la dipendenza
WHERE status = 'completed'
GROUP BY 1

Let op de {{ ref('stg_orders') }}: dbt weet dat dit model ervan afhangt van stg_orders, bouwt automatisch de afhankelijkheidsgrafiek (DAG) en garandeert dat de patronen in de juiste volgorde worden uitgevoerd.

De rol van de Analytics-ingenieur

De opkomst van schulden heeft een nieuwe professionele figuur gecreëerd: deanalytisch ingenieur. Het is het profiel halverwege tussen data-analist en data-ingenieur:

  • Hij kent SQL net zo diep als een analist
  • Pas software-engineeringpraktijken toe (Git, testen, CI/CD) als een ingenieur
  • Bouwt en onderhoudt de datawarehouse-transformatielaag
  • Samenwerken met data-analisten (die de modellen gebruiken) en data-ingenieurs (die de opnamepijplijnen beheren)

Volgens de Staat van data-engineering 2025, is de rol van analytics engineer gegroeid met 340% in de afgelopen drie jaar op LinkedIn, waardoor het een van de meest gezochte profielen in de datawereld is.

Het dbt-ecosysteem in 2026

dbt is niet alleen een hulpmiddel: het is een compleet ecosysteem geworden met twee hoofddistributies:

dbt Kern

De versie open source en gratis van dbt. Het wordt geïnstalleerd via pip, het werkt vanaf de lijn commando en integreert met elk CI/CD-systeem. Ondersteunt alle grote datawarehouses: Snowflake, BigQuery, Redshift, Databricks, DuckDB, PostgreSQL en nog veel meer via adapter.

dbt-wolk

De beheerde dienst van dbt Labs, het bedrijf achter dbt. Voegt een web-IDE, planner toe geïntegreerd, monitoring, dbt Explorer (geavanceerde lijn) en de dbt Semantic Layer voor consistente statistieken. Beschikbaar met een gratis abonnement voor ontwikkelaars en ondernemingsabonnementen van $ 100/maand voor teams.

De pijlers van het dbt-project

Een dbt-project heeft een standaardstructuur die orde brengt waar voorheen chaos heerste:

jaffle_shop/                    # nome del progetto
├── dbt_project.yml             # configurazione del progetto
├── profiles.yml               # credenziali di connessione (locale)
├── models/
│   ├── staging/               # modelli vicini alla sorgente
│   │   ├── stg_orders.sql
│   │   ├── stg_customers.sql
│   ├── marts/                 # modelli business-oriented
│       ├── finance/
│       │   └── orders_daily.sql
│       └── marketing/
│           └── customer_ltv.sql
├── tests/                     # test SQL personalizzati
├── seeds/                     # CSV statici come reference data
├── macros/                    # funzioni SQL riutilizzabili
└── analyses/                 # query ad hoc (non materializzate)

Deze gelaagde structuur (staging → intermediair → marts) is een best practice dbt bellen gelaagde architectuur:

  • Staging: 1-op-1 met bronnen, gewoon hernoemen en typen
  • Tussenliggend: complexe joins en aggregaties tussen staging-modellen
  • Marten: Definitieve modellen klaar voor gebruik door BI en analytics

Testen en documentatie: de geweldige functies van dbt

Twee dbt-functies die de dataontwikkelingscyclus volledig transformeren:

Automatisch testen

Definieer tests rechtstreeks in het YAML-bestand dat bij elke sjabloon hoort:

# models/staging/schema.yml
models:
  - name: stg_orders
    columns:
      - name: order_id
        tests:
          - unique
          - not_null
      - name: status
        tests:
          - accepted_values:
              values: ['completed', 'pending', 'cancelled']
      - name: customer_id
        tests:
          - not_null
          - relationships:
              to: ref('stg_customers')
              field: customer_id

Met dbt test, voert dbt deze tests uit als SQL-query's in het magazijn en mislukt de pijplijn als er iets mis is. Geen Python-code, geen externe raamwerken.

Zelf gegenereerde documentatie

Voeg beschrijvingen toe in hetzelfde YAML-bestand:

# models/marts/schema.yml
models:
  - name: orders_daily
    description: "Aggregazione giornaliera degli ordini completati"
    columns:
      - name: order_date
        description: "Data dell'ordine, troncata al giorno"
      - name: revenue
        description: "Totale ricavi per il giorno, al netto dei resi"

dbt docs generate && dbt docs serve genereert een statische site met documentatie compleet en de interactieve DAG die de afhankelijkheden tussen alle modellen toont. Elke kolom is gedocumenteerd en herleidbaar tot de bron.

dbt in de moderne datastapel

dbt is doorgaans de T-laag van de stapel Moderne ELT:

  • Inslikken: Airbyte-, Fivetran-, Stitch- of Python-scripts laden onbewerkte gegevens in het magazijn
  • Opslag: Sneeuwvlok, BigQuery, Redshift, Databricks Delta Lake
  • Transformatie: dbt transformeert ruwe data in analytische modellen
  • BI & Analytics: Looker, Metabase, Tableau of notebooks gebruiken dbt-modellen

Anno 2026 is dbt aanwezig in de datastapel van ruim 30.000 bedrijven (dbt Labs data), van startups aan giganten als GitLab, JetBlue, Conde Nast en Shopify.

Waarom DGT leren in 2026

Concrete redenen om tijd te investeren in het leren van DGT:

  • Vraag uit de markt: “dbt” verschijnt in 45% van de vacatures voor data-ingenieurs en analyse-ingenieur op LinkedIn in Europa
  • Productiviteit: dbt-teams rapporteren een tijdsreductie van 60-70% tot het debuggen van datapijplijnen dankzij automatische tests
  • Ecosysteem: Meer dan 200 dbt-pakketten op dbt Hub, inclusief dbt-utils (de bibliotheek standaard) en dbt-verwachtingen voor geavanceerde tests
  • Waarneembaarheid: native integratie met Elementary, re_data en tools Waarneembaarheid van gegevens voor kwaliteitsbewaking in de productie

dbt is niet voor iedereen

dbt is zinvol als u al een clouddatawarehouse heeft en met SQL als primaire taal werkt. Het is geen vervanging voor Spark voor grootschalige transformaties op ongestructureerde data, en is ook niet geschikt een realtime streamingpijplijn (voor degenen die Flink, Kafka Streams of Spark Structured Streaming gebruiken). De goede plek van dbt is batchanalyse in SQL Warehouse.

Conclusies en volgende stappen

dbt heeft opnieuw gedefinieerd hoe datateams hun analysepijplijnen bouwen en onderhouden de volwassen praktijken van software-engineering – testen, versiebeheer, documentatie, CI/CD – in a wereld die al tientallen jaren zonder hen leeft.

De belangrijkste conclusie: dbt is geen niche-instrument voor grote ondernemingen. Het is toegankelijk, open-source en draait zelfs op één laptop met DuckDB als backend. De De leercurve is laag voor degenen die SQL kennen, de beloning is hoog.

In het volgende artikel in de serie zullen we een dbt Core-project helemaal opnieuw opzetten: we zullen dbt installeren, we zullen schrijven de profiles.yml, zullen we onze eerste modellen maken en de ref() macro in actie op een echte dataset.