Zum Inhalt springen
_CORE
KI & Agentensysteme Unternehmensinformationssysteme Cloud & Platform Engineering Datenplattform & Integration Sicherheit & Compliance QA, Testing & Observability IoT, Automatisierung & Robotik Mobile & Digitale Produkte Banken & Finanzen Versicherungen Öffentliche Verwaltung Verteidigung & Sicherheit Gesundheitswesen Energie & Versorgung Telko & Medien Industrie & Fertigung Logistik & E-Commerce Retail & Treueprogramme
Referenzen Technologien Blog Know-how Tools
Über uns Zusammenarbeit Karriere
CS EN DE
Lassen Sie uns sprechen

Slowly Changing Dimensions — správa historických změn v dimenzích

13. 06. 2024 1 Min. Lesezeit intermediate

Slowly Changing Dimensions beantworten die Frage: Was tun, wenn sich Dimensionsattribute ändern? Ein Kunde ändert seine Adresse, ein Produkt seine Kategorie — wie bewahrt man Historie und Berichtskonsistenz?

SCD-Typen

Type 1 — Überschreiben

Der alte Wert wird mit dem neuen überschrieben. Keine Historie — am einfachsten, aber Informationsverlust.

Type 2 — Neue Zeile

Bei einer Änderung wird eine neue Zeile hinzugefügt mit Gültigkeitsdaten (valid_from, valid_to). Vollständige Historie.

CREATE TABLE dim_customer_scd2 (
    customer_key    INT PRIMARY KEY,  -- surrogate
    customer_id     VARCHAR(50),      -- natural
    customer_name   VARCHAR(200),
    segment         VARCHAR(50),
    valid_from      DATE NOT NULL,
    valid_to        DATE DEFAULT '9999-12-31',
    is_current      BOOLEAN DEFAULT TRUE
);

-- Kundenhistorie:
-- key=1: Jan Novák, SMB, 2024-01-01 → 2025-06-30
-- key=2: Jan Novák, Enterprise, 2025-07-01 → 9999-12-31 (aktuell)

Type 2 in dbt

-- dbt Snapshot für SCD Type 2
{% snapshot customer_snapshot %}
{{ config(
    target_schema='snapshots',
    unique_key='customer_id',
    strategy='check',
    check_cols=['customer_name', 'segment', 'email'],
) }}
SELECT * FROM {{ source('raw', 'customers') }}
{% endsnapshot %}

Type 3 — Spalte hinzufügen

Eine Spalte wird für den vorherigen Wert (previous_segment) hinzugefügt. Eingeschränkte Historie.

Zusammenfassung

SCD Type 2 ist am weitesten verbreitet — vollständige Historie mit valid_from/to. dbt Snapshots automatisieren die Implementierung.

scddata modelingdimenzehistorie
Teilen:

CORE SYSTEMS Team

Wir bauen Kernsysteme und KI-Agenten, die den Betrieb am Laufen halten. 15 Jahre Erfahrung mit Enterprise-IT.