Zum Inhalt springen

Verknüpft eine Faktentabelle mit einer Verlaufstabelle des SCD-2-Stammdaten-Builders und liefert für jede Faktenzeile die Stammdatenversion, die am Datum dieses Fakts gültig war – nicht die Version, die jetzt aktuell ist.

So ordnen Sie jede Transaktion der Region, der Kostenstelle, dem Verantwortlichen oder dem Preis zu, die galten, als sie stattfand. Es handelt sich um einen LEFT JOIN, sodass jede Faktenzeile erhalten bleibt: Ein Schlüssel ohne passende Version (unbekannter Schlüssel oder ein Datum vor der ersten Version des Schlüssels) liefert Übernahmespalten mit Nullwerten, statt verworfen zu werden.

Die Zeilen, die Sie anreichern möchten – Transaktionen, Aufträge, Ereignisse. Jede Zeile enthält einen Geschäftsschlüssel und ein Datum.

Eine vom SCD-2-Stammdaten-Builder erzeugte Verlaufstabelle, die neben den verfolgten Attributen valid_from, valid_to und is_current enthält.

Hierhin werden die angereicherten Faktenzeilen geschrieben. Dies muss eine Tabelle sein, keine Ansicht. Jede ursprüngliche Faktenspalte wird unverändert durchgereicht; die übernommenen Stammdatenspalten werden angehängt.

Der Stichtag ist der Zeitpunkt, zu dem jede Faktenzeile aufgelöst wird. Geben Sie ihn auf genau eine von zwei Arten an:

  • Stichtagsspalte der Fakten – eine Datumsspalte in der Faktentabelle (z. B. txn_date). Jede Zeile wird zu ihrem eigenen Datum aufgelöst.
  • Fester Stichtag – ein einzelnes Datum im Format YYYY-MM-DD oder eine Workflow-Variable wie {report_date}, das bzw. die auf jede Faktenzeile angewendet wird (die gesamte Faktentabelle wird zu einem Berichtsdatum aufgelöst). Eine Variable wird beim Ausführen des Schritts eingesetzt.

Umbenennungsoptionen vermeiden Kollisionen, wenn eine übernommene Spalte denselben Namen wie eine Faktenspalte trägt:

  • Übernahmepräfix / Übernahmesuffix – werden dem Ausgabenamen jeder übernommenen Spalte hinzugefügt (prefix + Spalte + suffix). Kollidiert eine übernommene Spalte nach dem Umbenennen immer noch mit einer Faktenspalte oder einer anderen übernommenen Spalte, schlägt die Ausführung fehl, statt stillschweigend zu überschreiben.

Verwenden Sie SCD-2 untersuchen, um die Spalten der SCD-2-Tabelle aufzulisten, und kennzeichnen Sie dann jede Spalte:

Rolle Bedeutung
Geschäftsschlüssel Der Schlüssel, der Fakten und Verlauf verknüpft (z. B. customer_id). Muss zu den Schlüsselspalten des Fakts passen. Mindestens einer ist erforderlich.
Übernahmespalte Ein Attribut, das auf die Faktenzeile übernommen wird (z. B. region). Mindestens eine ist erforderlich.
(ignorieren) Nicht gekennzeichnete Spalten werden nicht übernommen.

Das Speichern des Schritts wird abgewiesen, mit einer Meldung, die die Spalte oder das Datum nennt, wenn:

  • Eine Spalte mehr als einmal als Geschäftsschlüssel oder als Übernahmespalte gekennzeichnet ist – ‘region’ is tagged as a Carry Column more than once.
  • Eine Spalte sowohl Geschäftsschlüssel als auch Übernahmespalte ist – customer_id can’t be both a Business Key and a Carry Column: the key columns already come from the fact table.
  • Der Feste Stichtag kein echtes Datum im Format YYYY-MM-DD ist – The Literal As-Of Date ‘2026-02-30’ must be a date in YYYY-MM-DD form. Ein Datum, das eine Workflow-Variable benennt, wird geprüft, wenn die Ausführung sie einsetzt.

Eine Faktenzeile entspricht genau der Verlaufsversion, deren Intervall ihren Stichtag enthält, mit einem halboffenen Vergleich:

valid_from <= as_of AND as_of < valid_to

Die Untergrenze ist eingeschlossen, die Obergrenze ausgeschlossen. Das ist am Grenztag von Bedeutung:

  • as_of == valid_from → entspricht dieser Version (sie wird an ihrem Starttag wirksam).
  • as_of == valid_to → entspricht nicht dieser Version, sondern fällt auf die nächste Version, deren valid_from diesem valid_to entspricht.

Da der SCD-2-Stammdaten-Builder aufeinanderfolgende Versionen so schreibt, dass das valid_to der einen das valid_from der nächsten ist, wird jedes Datum genau einer Version zugeordnet – ohne Lücken und ohne Überschneidungen. Eine Änderung mit dem Datum 2026-04-01 bedeutet, dass der neue Wert am 1. April gilt; eine Transaktion am 31. März erhält weiterhin den alten Wert.

In Fortsetzung des SCD-2-Stammdaten-Builders wird jede Transaktion der Region zugeordnet, die an ihrem Datum galt.

customer_scd2 (die Verlaufstabelle):

customer_id region valid_from valid_to is_current
C1 West 2026-01-01 2026-04-01 false
C1 Central 2026-04-01 9999-12-31 true
C2 East 2026-01-01 9999-12-31 true

transactions (die Faktentabelle):

txn_id customer_id txn_date amount
T1 C1 2026-03-15 100
T2 C1 2026-04-01 200
T3 C2 2026-05-10 150
T4 C9 2026-05-10 90

Konfiguration: Faktentabelle = transactions, SCD-2-Tabelle = customer_scd2, Ausgabetabelle = transactions_by_region, Stichtagsspalte der Fakten = txn_date, Geschäftsschlüssel = customer_id, Übernahmespalte = region.

transactions_by_region:

txn_id customer_id txn_date amount region
T1 C1 2026-03-15 100 West
T2 C1 2026-04-01 200 Central
T3 C2 2026-05-10 150 East
T4 C9 2026-05-10 90 (null)

Beachten Sie die Grenze: T2 am 2026-04-01 wird zu Central aufgelöst, weil das halboffene Intervall den 1. April zum ersten Tag der Version Central macht und nicht zum letzten Tag von West. Der Schlüssel C9 von T4 ist unbekannt, daher bleibt die Zeile mit einer Nullregion erhalten, statt verworfen zu werden.