🎁 Meld je nu aan en krijg maximaal 30 minuten gratis online AI-gebruik. Geen creditcard nodig.

Data Engineer Interviewvragen en Antwoorden (2026): SQL, Pipelines en Spark

October 9, 2026
20 data engineer interviewvragen met antwoorden: SQL-vensterfuncties met geteste voorbeelden, ETL vs ELT, idempotente pipelines, datakwaliteit, modellering, Spark-shuffles en Airflow.
Data Engineer Interviewvragen en Antwoorden (2026): SQL, Pipelines en Spark
data engineer interviewvragen
data engineering interview
sql vensterfuncties interview
etl vs elt
spark interviewvragen

Data-engineer-interviews testen drie dingen: SQL, hoe je datapipelines ontwerpt en draait, en hoe je redeneert over schaal en falen. Hieronder staan 20 vragen met antwoorden die je kunt aanpassen, in de volgorde waarin kandidaten ze meestal tegenkomen. De SQL-voorbeelden zijn vóór publicatie uitgevoerd op een kleine voorbeelddatabase, en de getoonde resultaten zijn de echte uitvoer.

SQL-vragen

1. Zoek het op één na hoogste salaris binnen elk bedrijf of overall

Gebruik DENSE_RANK, zodat gelijke waarden dezelfde rang delen en "op één na hoogste" de tweede verschillende waarde betekent.

SELECT name, salary
FROM (
  SELECT name, salary, DENSE_RANK() OVER (ORDER BY salary DESC) AS r
  FROM employees
) t
WHERE r = 2;

Op een tabel met salarissen 150, 130, 130, 110, 90, 70 geeft dit de twee mensen met salaris 130. Leg uit waarom je voor DENSE_RANK koos in plaats van RANK (dat nummers overslaat na gelijke waarden) en ROW_NUMBER (dat gelijke waarden willekeurig doorbreekt).

2. De twee best betaalde medewerkers per afdeling

SELECT dept, name, salary
FROM (
  SELECT dept, name, salary,
         RANK() OVER (PARTITION BY dept ORDER BY salary DESC) AS r
  FROM employees
) t
WHERE r <= 2;

PARTITION BY laat de rangschikking voor elke afdeling opnieuw beginnen. Noem dat gelijke salarissen met RANK meer dan twee rijen kunnen opleveren.

3. Lopend totaal per klant

SELECT customer, order_date, amount,
       SUM(amount) OVER (PARTITION BY customer ORDER BY order_date) AS running_total
FROM orders;

Voor een klant met bestellingen van 10, 20 en 30 op oplopende datums zijn de lopende totalen 10, 30 en 60.

4. Verwijder dubbele rijen en behoud de eerste

SELECT id, user_id
FROM (
  SELECT id, user_id,
         ROW_NUMBER() OVER (PARTITION BY user_id ORDER BY id) AS rn
  FROM events
) t
WHERE rn = 1;

Hier is ROW_NUMBER de juiste keuze, omdat je precies één rij per groep wilt. Wees klaar om te zeggen hoe je in een echte tabel bepaalt welke dubbele rij je behoudt (nieuwste tijdstempel, meest complete record).

5. Verschil met de vorige rij

SELECT order_date, amount,
       amount - LAG(amount) OVER (ORDER BY order_date) AS change
FROM orders
WHERE customer = 'A';

Het verschil van de eerste rij is NULL, omdat er geen vorige rij is. Zeg dat hardop, want dat is de gebruikelijke vervolgvraag.

6. Wat is het verschil tussen WHERE en HAVING?

WHERE filtert rijen vóór het groeperen, en HAVING filtert groepen na aggregatie. Je kunt geen aggregatie zoals COUNT(*) gebruiken in WHERE.

7. Hoe versnel je een trage query?

  1. Bekijk het queryplan voordat je iets verandert.
  2. Controleer of filters een index kunnen gebruiken, en of functies op de kolom dat niet blokkeren.
  3. Beperk de hoeveelheid gescande data: selecteer alleen de benodigde kolommen, filter vroeg, en partitioneer grote tabellen op datum.
  4. Vervang herhaalde subqueries door joins of common table expressions, en controleer op onbedoelde rijvermenigvuldiging in joins.
  5. Controleer voor warehouses de clustering of sort keys en hoeveel data elke query leest.

Vragen over pipelineontwerp

8. ETL of ELT?

ETL transformeert data voordat die wordt geladen. ELT laadt eerst ruwe data en transformeert die binnen het warehouse. ELT is gebruikelijk bij cloud-warehouses omdat opslag goedkoop is, ruwe data beschikbaar blijft voor herverwerking, en transformaties als SQL kunnen worden geversioneerd. ETL is nog steeds zinvol wanneer data moet worden opgeschoond of gemaskeerd voordat die binnenkomt, bijvoorbeeld om persoonsgegevens te verwijderen.

9. Batch of streaming?

Kies op basis van hoe vers de data moet zijn. Batch is eenvoudiger en goedkoper en past bij dagelijkse rapporten. Streaming past bij situaties waarin minuten of seconden tellen, zoals fraudedetectie of live dashboards. Veel systemen gebruiken beide. Benoem welke zakelijke beslissing erachter zit, niet alleen de technologie.

10. Wat is een idempotente pipeline, en waarom is dat belangrijk?

Als je hem twee keer draait, krijg je hetzelfde resultaat als wanneer je hem één keer draait. Dat is belangrijk omdat jobs falen en opnieuw worden geprobeerd. Om een load idempotent te maken, schrijf je per partitie en overschrijf je die partitie, of gebruik je een upsert met een stabiele sleutel, zodat een nieuwe poging geen duplicaten oplevert.

11. Hoe ga je om met late of buiten volgorde binnenkomende data?

Gebruik event time in plaats van aankomsttijd, en definieer hoe laat data mag binnenkomen. In streaming-systemen vertelt een watermark de job hoe lang die moet wachten voordat een venster wordt gesloten. Voor batchtabellen kun je recente partities volgens een schema opnieuw verwerken, of een correctieproces bijhouden dat de getroffen dagen herschrijft.

12. Hoe ontwerp je voor falen en nieuwe pogingen?

Maak stappen klein, idempotent en onafhankelijk opnieuw uitvoerbaar. Bewaar state buiten de job. Geef niet alleen alerts op fouten, maar ook op ontbrekende of te late data. Stel een limiet aan nieuwe pogingen, en stuur herhaaldelijke fouten naar een plek waar een mens ernaar kijkt.

13. Hoe controleer je datakwaliteit?

ControleVoorbeeld
VolledigheidRijenaantallen komen binnen een tolerantie overeen met de bron
UniciteitDe primaire sleutel bevat geen duplicaten
ValiditeitWaarden vallen binnen een verwacht bereik of een verwachte set
ActualiteitDe nieuwste tijdstempel is recent genoeg
ConsistentieTotalen komen overeen tussen gerelateerde tabellen

Voer controles uit binnen de pipeline en faal vroeg, zodat slechte data de rapporten niet bereikt.

Vragen over modellering en opslag

14. Wat is een sterschema?

Een centrale feitentabel bevat meetbare gebeurtenissen, zoals orders, en verwijst naar dimensietabellen die deze beschrijven, zoals klant, product en datum. Het is eenvoudig te bevragen en snel te aggregeren. Een sneeuwvlokschema normaliseert de dimensies verder, wat ruimte bespaart maar meer joins toevoegt.

15. Wat zijn slowly changing dimensions?

Dit zijn dimensiekenmerken die in de loop van de tijd veranderen, zoals het adres van een klant. Type 1 overschrijft de oude waarde en verliest de geschiedenis. Type 2 voegt een nieuwe rij toe met begin- en einddatums, zodat de geschiedenis behouden blijft. Geef aan welke je voor welk kenmerk zou kiezen en waarom.

16. Hoe partitioneer je een grote tabel?

Partitioneer op een kolom waarop de meeste queries filteren, meestal een datum. Queries die daarop filteren, lezen alleen de overeenkomende partities. Vermijd een kolom met te veel verschillende waarden, want dat levert een enorm aantal kleine partities op.

17. Welke bestandsformaten gebruik je voor analytics, en waarom?

Kolomgeoriënteerde formaten zoals Parquet slaan elke kolom bij elkaar op, zodat queries die een paar kolommen lezen de rest overslaan en goed comprimeren. Rijgeoriënteerde formaten zoals CSV of JSON zijn eenvoudig te produceren en te lezen, maar traag en groot op schaal.

Vragen over gedistribueerde verwerking

18. Wat is een shuffle in Spark, en waarom is die duur?

Een shuffle verplaatst data tussen machines zodat rijen met dezelfde sleutel bij elkaar komen, zoals bij joins en group-bys. Het kost netwerkverkeer, schrijfacties naar schijf en sorteren. Om het te beperken filter je vroeg, kies je verstandige partitieaantallen en broadcast je een kleine tabel in een join zodat de grote niet hoeft te worden verplaatst.

19. Hoe ga je om met data skew?

Skew betekent dat een paar sleutels het grootste deel van de data bevatten, waardoor één taak veel langer draait dan de rest. Opties zijn het salten van de hot key door een willekeurig achtervoegsel toe te voegen en twee keer te aggregeren, het broadcasten van de kleinere kant van een join, en het apart filteren of verwerken van de hot keys.

20. Wat doet een orchestrator zoals Airflow?

Die plant en draait taken in volgorde, gedefinieerd als een gerichte graaf waarin elke taak van andere afhangt. Hij regelt retries, backfills en alerts, en laat zien wat er draaide en wat faalde. Hij coördineert het werk. Hij is niet bedoeld om zelf zwaar te verwerken; dat hoort in een warehouse of een processing engine te draaien.

Hoe je je voorbereidt

  1. Oefen de bovenstaande window function-patronen tot je ze kunt schrijven zonder te kijken.
  2. Bereid één pipeline voor die je hebt gebouwd, met het volume, de fouten die je tegenkwam en wat je hebt veranderd.
  3. Wees klaar om een eenvoudige architectuur op een whiteboard te tekenen en te vertellen wat er gebeurt als een stap faalt.
  4. Neem je cv door: naar elke tool erop kan gevraagd worden.

Voor gerelateerde oefening, zie onze gidsen over Kafka interview questions, Databricks interview questions, Snowflake interview questions, en system design interview questions.

Oefen hardop en in je eigen woorden. Een transcript achteraf laat zien waar je afdwaalde of het punt miste. Volg de regels van de werkgever over AI-tools in elk live interview of assessment.

Oefen je antwoorden met YesToTheOffer

Oefen hardop, krijg antwoorden op basis van je eigen cv en bekijk daarna je transcript. 30 gratis minuten, geen abonnement.

iOS & Android — Binnenkort
Bekijk prijzen