Gepubliceerd op: 27 mei 2025

Versnel je datapipeline met Materialisatiestrategieën

AuteurMarie StolkFunctieData Engineer

Tag(s)

Transformation Expert

Voor veel data engineers is het een frustrerend herkenbaar scenario: je zet een nieuwe datapijplijn op, alles draait soepel en de eindgebruiker krijgt netjes zijn of haar data. Maar dan, een paar weken later, begint het te haperen. Wat ooit een snelle job van 20 minuten was, sleept zich nu urenlang voort. Stakeholders stellen overdag vragen: “kun je deze data even snel ophalen?”, maar komen voor een vervelende verrassing te staan. Wat is er gebeurd? Waarom is iets dat eerst zo efficiënt werkte, nu ineens zo traag?

In dit artikel richten we ons op datapijplijnen die transformaties uitvoeren binnen een data warehouse met gestructureerde data. Denk aan klantgegevens, transacties of operationele logs. Deze transformaties bouwen vaak voort op elkaar, waardoor kleine vertragingen snel kunnen opstapelen.

Gelukkig is hier iets aan te doen. Een effectieve manier om dit aan te pakken, is door bewust te kiezen tussen `views`, `tables` en `incremental` modellen. Zo voorkom je onnodige herberekeningen en kun je pipelines weer terugbrengen naar werkbare runtimes, zonder ingrijpende refactors. Dat dit impact maakt, blijkt uit een praktijkvoorbeeld van dbt Labs: met één slimme materialisatiekeuze werd daar 90 minuten aan runtime bespaard.

Views, Tables en Incremental Modellen

Om strategisch te kunnen materialiseren, is het belangrijk de drie meest gebruikte vormen goed te begrijpen:

  • Views slaan geen data op, maar voeren bij elke run de onderliggende query opnieuw uit. Ideaal voor kleine datasets of modellen die zelden worden geraadpleegd. Minder geschikt bij groeiende volumes, omdat runtimes dan snel oplopen.
  • Tables slaan de resultaten van een query fysiek op. Dit kost meer opslag, maar versnelt downstream queries aanzienlijk. Geschikt voor veel gebruikte datasets of als meerdere modellen van dezelfde tussenlaag afhankelijk zijn.
  • Incremental modellen werken als tables, maar voegen alleen nieuwe of gewijzigde records toe. Perfect voor grote datasets die dagelijks verversen. Wel vergen ze goede logging en robuuste logica om fouten of datadrift te voorkomen.

Let op: zodra je iets materialiseert, introduceer je de kans op datadrift. Een situatie waarin je gematerialiseerde data niet meer overeenkomt met de actuele brondata. Bij `incremental models` gebeurt dit bijvoorbeeld als een bron dataset later wordt aangevuld met data van een dag die je al hebt verwerkt. In dit artikel gaan we hier niet dieper op in, maar het is goed om te beseffen dat materialisatie altijd vraagt om goede monitoring en validatie.

Advies

Merk je dat je pipelines trager worden? Dan is het de moeite waard om te controleren of je één van de volgende keuzes hebt gemaakt:

  1. Je gebruikt een `table` waar een `view` volstaat. Bijvoorbeeld bij een lichtgewicht model dat niet door eindgebruikers geraadpleegd wordt. In zo’n geval leidt materialiseren vooral tot onnodige opslag en vertraagde builds zonder performance winst.
  2. Je gebruikt een `view` of `table` waar een `incremental` model nodig is. Zeker bij grote, groeiende datasets kan het telkens volledig herberekenen de runtime onnodig hoog opdrijven. Een incrementele aanpak voorkomt dit, mits goed opgezet.

Richtlijnen voor snellere pipelines

  1. Gebruik `views` voor modellen die zelden gebruikt worden of alleen als tussenlaag dienen, en waarbij opslagruimte belangrijker is dan query tijd.
  2. Gebruik `tables` als meerdere downstream modellen dezelfde tussenlaag gebruiken of wanneer performance bij eindgebruik cruciaal is.
  3. Gebruik `incremental models` bij grote datasets die dagelijks groeien. Zorg hierbij voor betrouwbare logging en logica om datadrift te voorkomen.

Dat ook tussenlagen baat kunnen hebben bij materialisatie blijkt uit recent onderzoek van Bram Reinders (TU Eindhoven) bij Blenddata. Zijn analyse laat zien dat het materialiseren van bepaalde tussentabellen, ook als deze niet direct door eindgebruikers worden geraadpleegd, herberekeningen in downstream modellen aanzienlijk kan beperken en zo de totale pipeline-prestatie verbetert.

Door deze richtlijnen toe te passen, voorkom je dat je pipeline traag wordt naarmate je data groeit en kun je met minimale ingrepen weer snel leveren aan je stakeholders.

Conclusie

Door strategisch na te denken over hoe je je data materialiseert (`view`, `table`, `incremental`), kun je de performance verbeteren, opslag optimaliseren en veel snellere pipelines krijgen. Slim materialiseren bespaart dus tijd, verlaagt frustratie en zorgt voor tevreden stakeholders.

Werk je aan een datapijplijn die steeds trager lijkt te worden? Of wil je je bestaande setup future-proof maken? Wij denken graag mee..

AuteurMarie StolkFunctieData Engineer

Tag(s)

Transformation Expert

Heb je een vraag?

Of wil je sparren over jouw datastructuur of transformaties? Neem gerust contact met ons op. We helpen je graag verder.

Vincent Fokker

Co-founder | Data Architect

Share this page

Blenddata © 2025 | Alle rechten voorbehouden

Website made by: Gewest13