Slowly Changing Dimensions beschreiben, wie du Attributänderungen in Dimensionstabellen behandelst. Typ 1 überschreibt und verliert Historie. Typ 2 fügt pro Änderung eine neue Zeile ein, mit Surrogate Key, valid_from und valid_to Timestamps und einem Current-Flag, sodass Fakten auf die damals gültige Version des Attributs joinen. Typ 3 hält eine Spalte mit dem vorherigen Wert für genau einen früheren Zustand.
Warum Interviewer das fragen
Das ist die Kernfrage zur dimensionalen Modellierung, und sie trennt Leute, die ein Warehouse gebaut haben, von Leuten, die eins nur abgefragt haben. Interviewer wollen den Surrogate Key hören, denn natürliche Schlüssel brechen, sobald du mehrere Zeilen pro Entität hast, und sie wollen wissen, wie Fakten auf die korrekte historische Version joinen statt auf den aktuellen Stand.
So baust du deine Antwort auf
- Definier Typ 1, 2 und 3 in je einem Satz.
- Geh auf die Typ-2-Spalten ein: Surrogate Key, valid_from, valid_to, is_current.
- Erklär, wie Fakten auf die zum Event-Zeitpunkt korrekte Version joinen.
- Beschreib die Ladelogik: alte Zeile schließen, neue einfügen.
- Nenn die Kosten: Tabellenwachstum und Query-Komplexität.
Beispielantwort
Typ 1 überschreibt den Wert einfach, damit ist die Historie weg. Typ 2 behält die Historie, indem bei jeder Attributänderung eine Zeile dazukommt. In der Praxis heißt das: ein Surrogate Key als Primärschlüssel, daneben der fachliche natürliche Schlüssel, valid_from und valid_to Timestamps und ein is_current Boolean der Bequemlichkeit halber. Die Faktentabelle speichert den Surrogate Key, der zum Zeitpunkt des Events gültig war, sodass ein Sales-Fakt aus dem März weiterhin auf das März-Gebiet der Vertriebsperson joint und nicht auf ihr heutiges. Genau darum geht es, und genau das fällt der Finanzabteilung auf, wenn du es falsch machst. Das Laden ist ein Merge: finde Zeilen, in denen sich die getrackten Spalten geändert haben, setz valid_to auf der bestehenden Zeile und füge eine neue Zeile mit gesetztem valid_from und valid_to als null oder als Datum weit in der Zukunft ein. Ich hashe die getrackten Spalten meist in einen einzigen Change Key, damit der Vergleich ein einzelner Gleichheitstest ist und nicht zwanzig.
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 gehst du mit einem verspätet eintreffenden Dimensionssatz um?
- Was passiert mit deiner Faktentabelle, wenn du stattdessen den natürlichen Schlüssel nimmst?
- Wie würdest du Typ 2 in dbt umsetzen?
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