Partitionierung teilt eine Tabelle in physisch getrennte Stücke, meist nach Datum, sodass eine gefilterte Query ganze Partitionen wegschneidet und weniger scannt. Clustering sortiert die Daten im Storage nach ausgewählten Spalten, damit die Engine Blöcke auf diesen Prädikaten überspringen kann. Partitionier auf der Spalte, die in fast jeder WHERE-Klausel steht, typischerweise das Event-Datum; clustere auf den Spalten mit hoher Kardinalität, nach denen als Nächstes gefiltert oder gejoint wird.
Warum Interviewer das fragen
Interviewer wollen praktisches Gespür für Kosten und Performance, denn das Scan-Volumen ist die Rechnung bei BigQuery und der Credit-Verbrauch bei Snowflake. Sie achten außerdem auf die Klassiker: Partitionierung auf einer Spalte mit hoher Kardinalität, Tausende winziger Partitionen und die Annahme, Clustering helfe auch Queries, die gar nicht auf den Clustering-Keys filtern.
So baust du deine Antwort auf
- Definier Partitionierung als physisches Pruning und Clustering als Sortierung innerhalb der Daten.
- Nenn die Regel für die Spaltenwahl bei beidem.
- Warn vor Überpartitionierung und dem Small-Files-Problem.
- Erklär, wie du den Nutzen prüfst, statt ihn anzunehmen.
- Bind es an Kosten zurück, nicht nur an Geschwindigkeit.
Beispielantwort
Partitionierung ist grob und physisch: nach Tag aufteilen, und eine auf letzte Woche gefilterte Query liest sieben Partitionen statt der ganzen Tabelle. Clustering ist feingranulare Sortierung innerhalb der Daten, sodass die Engine Blöcke anhand der Min- und Max-Werte überspringen kann, die sie pro Block speichert. Meine Regel: partitionieren auf dem, was in fast jeder Query steht, also fast immer ein Event- oder Ingestion-Datum, dann clustern auf den nächsten ein oder zwei Prädikaten, etwa Customer-ID oder Land. Der Fehler, den ich mehr als einmal aufgeräumt habe, ist Überpartitionierung. Jemand hat nach Customer-ID partitioniert, landete bei vierzigtausend Partitionen von wenigen Kilobyte, und allein die Query-Planung wurde langsamer als der Scan, den sie vermeiden sollte. Die andere Gewohnheit, die ich behalte: prüfen statt vertrauen. In BigQuery schaue ich mit einem Dry Run auf die verarbeiteten Bytes vorher und nachher, denn wenn die Schätzung nicht sinkt, greift das Pruning nicht, meist weil der Filter die Partitionsspalte in eine Funktion packt.
Steht dieses Vorstellungsgespräch bald an? GhostPilot hört bei deinem Live-Call mit, erkennt die Frage in dem Moment, in dem sie gestellt wird, und bringt dir eine strukturierte Antwort in Echtzeit auf den Bildschirm. Probier es im nächsten Mock aus, oder hol dir einen $29 Session Pass, kein Abo, für den Ernstfall.
So funktioniert esNachfragen, mit denen du rechnen solltest
- Warum kann ein Filter auf der Partitionsspalte trotzdem kein Pruning auslösen?
- Wie verhält sich Clustering, wenn neue Daten dazukommen?
- Was ist das Small-Files-Problem und wie behebst du es?
Weitere Fragen für Data Engineer
Dein Interviewer stellt seine eigene Version davon. Kopier deine echte Stellenbeschreibung in den kostenlosen Question Predictor und bekomm die 20 Fragen, die diese Rolle am wahrscheinlichsten stellt, samt dem, worauf jede wirklich abzielt.
Meine Fragen vorhersagen