Ein Star Schema hat eine Faktentabelle, umgeben von denormalisierten Dimensionstabellen, sodass die meisten Queries einen Join pro Dimension brauchen. Snowflaking normalisiert eine Dimension in Untertabellen, was Storage spart und geteilte Attribute zentralisiert, aber Joins hinzufügt. In einem spaltenorientierten Warehouse ist Storage billig und Joins kosten mehr als Duplikate, also ist Star der Standard. Snowflake eine Dimension, wenn sie wirklich groß, hierarchisch oder über viele Marts geteilt ist.
Warum Interviewer das fragen
Interviewer testen damit, ob du über physische Trade-offs nachdenken kannst statt Kimball nachzuplappern. Die besten Antworten erwähnen, dass spaltenweise Kompression denormalisierte Dimensionen billig macht, dass Query Engines Broadcast Joins auf kleinen Dimensionen gut wegstecken und dass das eigentliche Argument für Star die Nutzbarkeit für Analysten ist und nicht rohe Performance.
So baust du deine Antwort auf
- Beschreib die Star-Form und warum sie analystenfreundlich ist.
- Erklär Snowflaking als Normalisierung von Dimensionen.
- Argumentier den Trade-off über Joins gegen Storage auf spaltenorientierten Engines.
- Gib einen konkreten Fall, in dem Snowflaking richtig ist.
- Nenn die Granularität als Entscheidung, die beidem vorausgeht.
Beispielantwort
Ein Star ist eine Faktentabelle auf definierter Granularität mit denormalisierten Dimensionen daran, sodass eine Analystin einen Join pro Dimension schreibt und lesbare Spaltennamen bekommt. Das ist mein Standard, denn in einem spaltenorientierten Warehouse komprimiert ein Ländername, der sich über zwei Millionen Zeilen wiederholt, auf fast nichts, und die kleine Dimension wird ohnehin gebroadcastet. Snowflaking ergibt Sinn, wenn die Dimension tatsächlich groß und hierarchisch ist, zum Beispiel eine Produktdimension mit einem Kategoriebaum, den mehrere Marts teilen müssen, denn diese Hierarchie an einer Stelle zu pflegen schlägt fünf Kopien. Was ich vor beidem ansprechen würde, ist die Granularität. Die Entscheidung, dass die Faktentabelle eine Zeile pro Bestellposition statt pro Bestellung hat, bestimmt alles danach, und ein Fehler dort erzeugt den klassischen Bug mit doppelt gezähltem Umsatz. Ich musste schon einen Mart neu bauen, weil die Granularität gemischt war, und das ist deutlich teurer als jede Normalisierungsdebatte.
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
- Wie legst du die Granularität einer Faktentabelle fest?
- Was ist eine Factless Fact Table und wann würdest du eine nutzen?
- Wie modellierst du eine n:m-Beziehung zwischen Fakt und Dimension?
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