Databricks-interviews combineren meestal Apache Spark (hoe jobs draaien, waarom ze traag zijn), Delta Lake (wat tabellen betrouwbaar maakt) en het platform (clusters, jobs, governance). De sterkste antwoorden koppelen elk concept aan een echt probleem, zoals scheve joins, kleine bestanden of een pipeline die veilig opnieuw moet kunnen draaien.
Databricks hernoemt en herstructureert producten vrij vaak, dus zeg welke namen je hebt gebruikt (bijvoorbeeld Delta Live Tables, nu onderdeel van de Lakeflow-familie) en check de vacaturetekst voor de stack.
Hieronder staan 25 vragen met antwoorden.
Platform en architectuur
1. Wat is Databricks, en wat is een lakehouse?
Databricks is een cloudplatform voor data en AI, gebouwd rond Apache Spark. Een lakehouse bewaart data in open formaten op cloud-objectopslag en voegt daar de betrouwbaarheid en governance van een warehouse aan toe, zodat één kopie van de data kan dienen voor engineering, analytics en machine learning.
2. Wat is het verschil tussen all-purpose clusters, job clusters en SQL-warehouses?
All-purpose clusters zijn voor interactief werk en ontwikkeling. Job clusters starten voor een geplande job en worden daarna afgesloten, wat goedkoper is. SQL-warehouses zijn compute die is afgestemd op SQL- en BI-query's.
3. Hoe houd je de kosten onder controle?
Gebruik job clusters voor productie, automatische beëindiging op interactieve clusters, autoscaling met verstandige limieten, goed gekozen instance-types, spot instances voor fouttolerant werk, cluster policies om te beperken wat mensen kunnen aanmaken, en tags voor kostenrapportage.
4. Wat is Unity Catalog?
De governance-laag voor data- en AI-assets. Het biedt een namespace met drie niveaus (catalog, schema, table), centraal toegangsbeheer, lineage en auditing across workspaces.
Delta Lake
5. Wat is Delta Lake, en waarom zou je het gebruiken in plaats van gewone Parquet?
Delta Lake is een tabelformaat dat een transactielog toevoegt aan Parquet-bestanden. Het biedt ACID-transacties, schema enforcement en schema evolution, time travel en efficiënte updates en deletes. Gewone Parquet heeft geen transacties, dus een mislukte write kan gedeeltelijke data achterlaten, en lezers kunnen een inconsistente staat zien.
6. Hoe werkt het Delta-transactielog?
Elke commit voegt een JSON-entry toe aan de map _delta_log, met periodieke checkpoints. Het log vermeldt welke databestanden op elk versienummer in de tabel zitten. Lezers gebruiken het om een consistente snapshot te zien, en schrijvers gebruiken optimistic concurrency, waarbij ze opnieuw proberen of falen als een andere commit conflicteert.
7. Wat is time travel?
Een eerdere versie van een tabel opvragen op versienummer of timestamp, voor audit, debugging of rollback.
SELECT * FROM sales VERSION AS OF 12;
RESTORE TABLE sales TO VERSION AS OF 12;
8. Hoe doe je een upsert met Delta?
Met MERGE INTO:
MERGE INTO customers t
USING updates s ON t.id = s.id
WHEN MATCHED THEN UPDATE SET *
WHEN NOT MATCHED THEN INSERT *;
Zorg dat de bron één rij per key heeft, anders mislukt de merge of krijg je verkeerde resultaten.
9. Wat doen OPTIMIZE en VACUUM?
OPTIMIZE compacteert veel kleine bestanden tot grotere, wat reads versnelt. VACUUM verwijdert bestanden die niet meer door de tabel worden gerefereerd en ouder zijn dan de bewaartermijn, wat opslag vrijmaakt maar time travel beperkt. Zet de bewaartermijn niet heel kort terwijl andere jobs mogelijk nog oudere versies lezen.
10. Hoe richt je data in voor snelle query's?
Partitioneer alleen op kolommen met lage cardinaliteit waarop query's vaak filteren, en houd partities groot genoeg. Te veel partitioneren levert veel kleine bestanden op. Gebruik voor andere kolommen Z-ordering of liquid clustering (de nieuwere aanpak), waarbij data zo wordt geclusterd dat query's bestanden kunnen overslaan.
Spark-fundamenten
11. Wat zijn transformaties en acties, en wat is lazy evaluation?
Transformaties zoals filter en select bouwen een plan op, maar voeren niets uit. Acties zoals count en write starten de uitvoering. Omdat Spark eerst het hele plan ziet, kan het dat optimaliseren.
12. Wat is een shuffle, en waarom is die duur?
Een shuffle verplaatst data tussen executors over het netwerk, zodat rijen met dezelfde key bij elkaar terechtkomen, zoals bij joins, groupBy en distinct. Het gaat gepaard met disk- en netwerk-I/O, dus het verminderen van shuffles is de belangrijkste route naar snellere jobs.
13. Hoe joint Spark twee tabellen, en hoe versnel je dat?
Standaard gebruiken grote joins een shuffle-join (sort-merge). Als één tabel klein is, stuurt een broadcast join die naar elke executor en voorkom je het shufflen van de grote tabel.
from pyspark.sql.functions import broadcast
df = big.join(broadcast(small), "id")
14. Wat is data skew, en hoe los je het op?
Een paar keys bevatten de meeste rijen, waardoor een paar taken veel langer duren dan de rest. Signalen zijn één taak die lang doorloopt in de Spark UI. Oplossingen zijn de skew-afhandeling van adaptive query execution, het salten van de key, het broadcasten van de kleinere kant, of het uitfilteren van null- of default-keys die de skew veroorzaken.
15. Wat is adaptive query execution (AQE)?
Spark past het plan tijdens de uitvoering aan op basis van echte statistieken: het kan kleine shuffle-partities samenvoegen, van join-strategie wisselen en scheve partities opsplitsen. Het staat standaard aan in recente versies.
16. Wat is het verschil tussen repartition en coalesce?
repartition kan het aantal partities verhogen of verlagen en doet een volledige shuffle. coalesce verlaagt alleen het aantal partities en vermijdt een volledige shuffle, dus het is goedkoper maar kan ongelijke partities opleveren.
17. Wanneer moet je een DataFrame cachen?
Wanneer je hetzelfde DataFrame meerdere keren hergebruikt in een job en het duur is om opnieuw te berekenen. Cache niets dat maar één keer wordt gebruikt, en geef de cache vrij wanneer je klaar bent.
18. Waarom geef je de voorkeur aan ingebouwde functies boven Python UDF's?
Ingebouwde functies draaien in de JVM en kunnen worden geoptimaliseerd. Python UDF's verplaatsen data tussen de JVM en Python en zijn ondoorzichtig voor de optimizer, dus ze zijn langzamer. Gebruik waar mogelijk ingebouwde functies of pandas UDF's.
Pipelines
19. Wat is de medallion-architectuur?
Een gelaagd ontwerp: bronze bevat ruwe geïngesteerde data, silver bevat opgeschoonde en geconformeerde data, en gold bevat aggregaten op bedrijfsniveau die klaar zijn voor rapportage. Het maakt duidelijk waar kwaliteitscontroles plaatsvinden en laat je latere lagen opnieuw opbouwen vanuit eerdere.
20. Wat is Auto Loader?
Een functie die incrementeel en efficiënt nieuwe bestanden uit cloudopslag ingestelt zodra ze binnenkomen, bijhoudt welke bestanden zijn verwerkt, en schema-inferentie en -evolutie ondersteunt.
21. Hoe gaat Structured Streaming om met fouten en exactly-once?
Het gebruikt checkpoints die voortgang en state opslaan, zodat een herstarte query verdergaat waar die stopte. Met replayable sources en idempotente of transactionele sinks zoals Delta krijg je end-to-end exactly-once resultaten.
22. Hoe maak je een pipeline veilig om opnieuw te draaien?
Maak writes idempotent: gebruik MERGE op een key, overschrijf een specifieke partitie, of gebruik een run-ID om duplicaten te voorkomen. Houd het inputbereik van de job expliciet en log rijcounts zodat je resultaten kunt controleren.
23. Hoe doe je datakwaliteitscontroles?
Gebruik expectations of constraints in de pipeline (bijvoorbeeld Delta-constraints of expectations in declarative pipelines), valideer rijcounts, nulls en uniciteit, en zet slechte rijen apart in plaats van de hele load te laten mislukken, afhankelijk van het contract met de gebruikers stroomafwaarts.
Scenario's
24. Een job die in 20 minuten draaide, doet er nu drie uur over. Wat doe je?
- Vergelijk de Spark UI van beide runs: welke stage is langzamer geworden?
- Controleer de inputgrootte en of een tabel is gegroeid of zijn lay-out kwijt is, bijvoorbeeld veel kleine bestanden.
- Zoek naar skew in de langzame stage, en naar spilling naar disk.
- Controleer clusterwijzigingen, zoals minder workers of een ander instance-type.
- Controleer op wijzigingen in de code of Spark-instellingen, en op een nieuwe join of UDF.
- Los de oorzaak op (compaction, broadcast, skew-afhandeling of sizing) en voeg monitoring toe.
25. Ontwerp een pipeline die dagelijkse JSON-bestanden ingestelt en een dashboard bedient.
"Auto Loader leest nieuwe bestanden in een bronze Delta-tabel met de ruwe data en metadata. Een job parseert en schoont ze op naar silver, en dedupliceert op key met MERGE. Een gold-tabel aggregeert voor het dashboard, dat leest uit een SQL-warehouse. Unity Catalog beheert de toegang, expectations vangen slechte data op, en de job draait op een job-cluster met alerts bij fouten en bij afwijkingen in rijcounts."
Hoe je je voorbereidt
Neem een notebook door dat een bestand inleest, aan een andere tabel joint, naar Delta schrijft en MERGE gebruikt. Open de Spark UI en zoek een shuffle en een scheve taak. Bereid één verhaal voor over het versnellen of repareren van een pipeline, met cijfers. Voor gerelateerde onderwerpen kun je onze gidsen bekijken over Kafka, Snowflake en Talend.
Spreek je antwoorden hardop uit, vooral de prestatiegerichte antwoorden, waar kandidaten vaak tuningtips opdreunen zonder diagnose. Een transcript van een proefinterview laat zien waar dat misgaat. Volg de regels van de werkgever over AI-tools in elk live interview.
Oefen Databricks-interviewantwoorden met YesToTheOffer
Doe een mock-technisch interview, leg een pijplijnontwerp hardop uit en bekijk achteraf je transcript. 30 gratis minuten, geen abonnement.



