Teil 19. Semantische Schicht, Metriken und Exposures
Die semantische Schicht entsteht, wenn dieselben Metriken in mehreren Berichten, Anwendungen oder Teams verwendet werden. Bis zu diesem Punkt reichen klare Data Marts und Prüftabellen aus. Wenn jedoch total_balance_rub, eine aktive Einwilligung oder risk_event_count weiter unten in der Konsumkette wiederholt auftauchen, müssen ihre Definitionen zentralisiert werden.
Was ist eine Metrik
Eine Metrik ist nicht nur eine Spalte. Sie ist ein Name, eine Formel, ein Grain, Filter, Aktualität, ein Eigentümer und eine Liste von Konsumenten. Wenn zwei Berichte „aktive Kunden" nach unterschiedlichen Regeln berechnen, liegt das Problem nicht beim BI-Werkzeug, sondern im semantischen Vertrag.
dbt semantic models
dbt unterstützt semantic models und metrics, aber im Lerntrack sind wir nicht verpflichtet, die volle Schicht einzubinden. Zuerst muss die semantische Absicht festgehalten werden:
Metrik: active_consent_count
Quell-Data Mart: mart_open_api_consents
Definition: Anzahl der Einwilligungen, bei denen `revoked_at is null`
Granularität: `scope`
Konsument: Open-API-Monitoring
Danach kann entschieden werden, ob eine dbt-semantische Schicht nötig ist oder ob ein dokumentierter Data Mart ausreicht.
Exposures
Ein Exposure zeigt, wer das Datenprodukt liest: ein Dashboard, eine API, ein Notebook, ein Bericht. Dies ist wichtig für den Vertragsdrift. Wenn ein Mart ein Exposure hat, müssen Breaking Changes den Eigentümer weiter unten in der Konsumkette benachrichtigen.
Qwen-Abfrage
Lies die Data Marts und Specs.
Finde Felder, die wie gemeinsame Metriken aussehen.
Schlage für jedes eine Definition, ein Grain, einen Eigentümer, einen Konsumenten
und einen Prüffakt vor.
Erstelle keine semantic models ohne Bestätigung.
Minimale Ausgabe
Erstellen Sie ein semantisches Register:
# Semantisches Register
## total_balance_rub
Definition:
Granularität:
Eigentümer:
Konsumenten:
Prüfung:
Erläuterung für den Leser
Die semantische Schicht sollte nicht eingeführt werden, weil sie im modernen Stack vorhanden ist, sondern weil ohne sie wiederholbare Metriken auseinanderdriften. Solange ein Data Mart von einem einzigen Bericht genutzt wird, können die Definitionen neben dem Mart gepflegt werden. Sobald dasselbe Feld in mehreren Teams auftaucht, entsteht ein neuer Vertrag: Was genau bedeutet active_consent_count, wer besitzt die Definition, welches Grain hat die Metrik, welche Filter werden angewendet.
Es ist wichtig, die semantische Schicht nicht mit einem Katalog hübscher Namen zu verwechseln. Eine Metrik ist nicht
eine umbenannte Spalte. Sie ist eine Formel, ein Kontext, Einschränkungen und Konsumenten. Wenn ein Team eine aktive Einwilligung über null in revoked_at zählt und ein anderes alte Einwilligungen nach Datum ausschließt, hat die Organisation bereits zwei Metriken mit demselben Namen. Das Problem entstand nicht im BI, sondern im Fehlen eines expliziten semantischen Vertrags.
Im Lernprojekt kann die vollständige semantische Schicht weggelassen werden. Dies ist eine bewusste Einschränkung. Zuerst muss gelernt werden, die Absicht zu formulieren: Feld, Definition, Grain, Eigentümer, Konsumenten, Prüfung. Erst danach lohnt es sich zu entscheiden, ob ein Markdown-Register ausreicht oder ein dbt semantic model nötig ist. Andernfalls erhält das Team eine weitere YAML-Schicht ohne abgestimmte Bedeutung.
Exposures fügen den Konsumentenkontext hinzu. Sie zeigen, wer den Mart liest: Dashboard, Notebook, API, regelmäßiger Bericht. Dies beeinflusst Breaking Changes. Wenn ein Mart keinen Konsumenten hat, wirkt eine Änderung lokal. Wenn ein Exposure erfasst ist, sieht der Autor, wen eine Feldumbenennung oder ein Wechsel des Grains betrifft. So wird die semantische Schicht Teil der SDD und nicht zu einem eigenen Begriffsmart.
Praxis
Wählen Sie eine Metrik aus den Data Marts und füllen Sie das semantische Register aus. Wenn Sie keinen Eigentümer oder Konsumenten benennen können, fügen Sie kein semantic model hinzu — klären Sie zunächst das Produktversprechen.
Typischer Fehler
Die semantische Schicht um der Stack-Vollständigkeit willen hinzuzufügen. Wenn es keine mehreren Konsumenten und keine wiederholbaren Metriken gibt, wird die Schicht zur Bürokratie. Wenn es jedoch bereits Konsumenten gibt, erzeugt ihr Fehlen Drift.
Kontrollfragen
- Was unterscheidet eine Metrik von einer Spalte?
- Wann macht ein Exposure eine Änderung zu einem Breaking Change?
- Warum sollte die semantische Schicht nicht eingeführt werden, bevor gemeinsame
Metriken auftauchen?