Schnappschüsse in dbt: Ein kurzer Überblick
dbt-Snapshots ermöglichen Ihnen einen "Rückblick" auf historische Daten, indem sie Änderungen in Ihren Datenbanktabellen erfassen. Dies wird durch die Implementierung von Slowly Changing Dimensions (SCDs) des Typs 2 erreicht, die verfolgen, wie sich eine Zeile im Laufe der Zeit verändert hat. So können Sie beispielsweise den Status einer Bestellung verfolgen, der von "ausstehend" über "versandt" zu "geliefert" wechselt.
In diesem Artikel:
Wie Schnappschüsse funktionieren
Wenn Sie die dbt-Schnappschuss
wird eine neue Tabelle mit denselben Spalten wie Ihre Quelltabelle und zusätzlichen Metadaten-Spalten wie dbt_valid_from
und dbt_valid_to
. Bei nachfolgenden Durchläufen aktualisiert dbt die dbt_valid_to
Spalte für geänderte Datensätze und fügt neue Datensätze mit dbt_valid_to
auf Null gesetzt.
dbt bietet verschiedene Strategien zur Erkennung von Änderungen, einschließlich des Vergleichs von Zeitstempeln, bestimmten Spaltenwerten oder einem eindeutigen Schlüssel. Sie können dbt auch so konfigurieren, dass es Löschungen verfolgt.
Best Practices für Schnappschüsse
- Speichern Sie Snapshots in einem separaten Schema, um Ihre historischen Daten zu organisieren.
- Snapshot-Rohdaten mit der Funktion
Quelle
und markieren Sie alle Spalten. - Vermeiden Sie Joins in Ihren Snapshot-Abfragen; erstellen Sie stattdessen separate Snapshots und fügen Sie diese nachgelagert zusammen.
- Wenn Sie Transformationen durchführen müssen, tun Sie dies in ephemeren Modellen, bevor Sie einen Snapshot erstellen.
- Planen Sie häufige Snapshots, um Änderungen regelmäßig zu erfassen.
Wenn Sie diese bewährten Verfahren befolgen, können Sie sicherstellen, dass Ihre dbt-Snapshots genau, effizient und einfach zu pflegen sind.
Das Video ansehen
Treffen mit dem Sprecher
Dmytro Polischtschuk
Senior BI-Berater
Dmytro Polishchuk hat 7 Jahre Erfahrung im Bereich Business Intelligence und arbeitet als Senior BI Consultant für Scalefree. Dmytro ist ein ausgewiesener Data Vault 2.0-Experte und verfügt über ausgezeichnete Kenntnisse verschiedener (Cloud-)Architekturen, Datenmodellierung und der Implementierung von Automatisierungs-Frameworks. Dmytro zeichnet sich durch Teamintegration und strukturierte Projektarbeit aus. Dmytro hat einen Bachelor-Abschluss in Finanzen und Finanzmanagement.