Direkt zum Hauptinhalt

Laden einer Data-Warehouse-Dimension vom Typ 2 mit langsam veränderlichen Daten mithilfe von Matillion auf der Databricks Lakehouse-Plattform

Verwalten von SCD Typ 2 mit Matillion in Databricks

Loading a Data Warehouse Slowly Changing Dimension Type 2 Using Matillion on Databricks Lakehouse Platform

Veröffentlicht: 25. Januar 2023

Partner5 min Lesezeit

Dies ist ein gemeinsamer Beitrag von Databricks und Matillion. Wir danken David Willmer, Product Marketing bei Matillion, für seine Beiträge.

 

Da immer mehr Kunden ihre Legacy Enterprise Data Warehouses und älteren ETL-Plattformen modernisieren, suchen sie nach einer modernen Cloud-Datenarchitektur mit der Databricks Lakehouse Platform und Matillion für GUI-basiertes ETL. Die Low-Code-Visual-ELT-Plattform von Matillion macht es jedem leicht, Daten aus beliebigen Quellen in Databricks SQL Warehouse zu integrieren und so Analysen und KI-Daten schneller für das Geschäft bereitzustellen.

Dieser Blog zeigt Ihnen, wie Sie eine ETL-Pipeline erstellen, die eine Slowly Changing Dimensions (SCD) Typ 2 mithilfe von Matillion in die Databricks Lakehouse Platform lädt. Matillion verfügt über eine moderne, browserbasierte Benutzeroberfläche mit Push-Down-ETL/ELT-Funktionalität. Sie können Ihre Databricks SQL-Data Warehouses oder Cluster einfach in Matillion integrieren. Wenn Sie sich nun fragen, wie Sie sich mit Databricks über Matillion verbinden können, ist Partner Connect der einfachste Weg. Es vereinfacht den Prozess, ein bestehendes SQL Warehouse oder einen Cluster in Ihrem Databricks-Arbeitsbereich mit Matillion zu verbinden. Hier sind die detaillierten Schritte.

Was ist eine Slowly Changing Dimension (SCD) Typ 2?

Eine SCD Typ 2 ist eine gängige Technik, um die Historie in einer Dimensionstabelle zu erhalten, die in jeder Data-Warehousing-/Modellierungsarchitektur verwendet wird. Inaktive Zeilen haben ein boolesches Flag, z. B. die Spalte ACTIVE_RECORD, die auf "F" gesetzt ist, oder ein Start- und Enddatum. Alle aktiven Zeilen werden angezeigt, indem eine Abfrage zurückgegeben wird, bei der das Enddatum Null oder ACTIVE_RECORD ungleich "F" ist.

Dimensionstabelle vor SCD2-Änderungen – Diese Data-Warehouse-Tabelle stellt ein typisches Szenario für die Kennzeichnung inaktiver Datensätze mit einem "Enddatum" dar.
Dimensionstabelle vor SCD2-Änderungen - Diese Data-Warehouse-Tabelle stellt ein typisches Szenario für die Kennzeichnung inaktiver Datensätze mit einem „Enddatum“ dar.

Matillion ETL für Delta Lake on Databricks verwendet einen zweistufigen Ansatz für die Verwaltung von Slowly Changing Dimensions vom Typ 2. Dieser zweistufige Ansatz beinhaltet zunächst die Identifizierung von Änderungen in eingehenden Datensätzen und deren Kennzeichnung in einer temporären Tabelle oder Ansicht. Sobald alle eingehenden Datensätze gekennzeichnet sind, können Aktionen auf der Zieldimensionstabelle ausgeführt werden, um die Aktualisierung abzuschließen.

Werfen wir nun einen genaueren Blick auf die Implementierung der SCD Typ 2-Transformationen mit Matillion, wobei Ihr Ziel eine Delta Lake-Tabelle ist und die zugrunde liegende Compute-Option ein Databricks SQL Warehouse ist.

Schritt 1: Staging der Dimensionsänderungen

In Schritt 1 unten liest die ETL-Pipeline die Daten aus unserer bestehenden Delta Lake-Dimensionstabelle und identifiziert nur die aktuellsten oder aktiven Datensätze (dies ist der untere Datenfluss). Gleichzeitig lesen wir alle unsere neuen Daten und stellen sicher, dass der vorgesehene Primärschlüssel eindeutig ist, um den Änderungserkennungsprozess nicht zu unterbrechen (dies ist der obere Datenfluss). Diese beiden Pfade laufen dann in der Komponente zur Erkennung von Änderungen zusammen.

Schritt 1: Änderungen erkennen – Diese Pipeline vergleicht neue Datensätze mit bestehenden Datensätzen, die sich bereits in einer Dimensionstabelle Ihres Lakehouse befinden. Mithilfe der Komponente zur Erkennung von Änderungen in Matillion ETL werden Datensätze als neu, geändert oder gelöscht gekennzeichnet und in eine Zwischenansicht geschrieben.
Schritt 1: Änderungen erkennen - Diese Pipeline vergleicht neue Datensätze mit bestehenden Datensätzen, die sich bereits in einer Dimensionstabelle Ihres Lakehouse befinden. Mithilfe der Komponente zur Erkennung von Änderungen in Matillion ETL werden Datensätze als neu, geändert oder gelöscht gekennzeichnet und in eine Zwischenansicht geschrieben.

Innerhalb von Matillion ETL ist die Komponente zur Erkennung von Änderungen ein zentraler Mechanismus zur Bestimmung der Aktualisierungen und Einfügungen für geänderte Datensätze. Sie vergleicht einen eingehenden Datensatz mit einem Zieldatensatz und ermittelt, ob die Datensätze identisch, geändert, neu oder gelöscht sind, indem eine Liste von Vergleichsspalten verwendet wird, die innerhalb der Komponente konfiguriert sind. Jeder Datensatz aus dem neuen Datensatz wird ausgewertet und ein Indikatorfeld in der Ausgabe der Komponente zur Erkennung von Änderungen zugewiesen – "I" für identisch, "C" für geändert, "N" für neu und "D" für gelöscht.

Data-Warehouse-Staging-Tabelle – Diese Tabelle stellt eine typische Staging-Tabelle in einem Data Warehouse dar, die nach dem Vergleich eingehender Daten mit einer Zieltabelle und der Feststellung, ob die Datensätze identisch, geändert, neu oder gelöscht sind, ein Feld "Änderungscode" ausfüllt.
Data-Warehouse-Staging-Tabelle - Diese Tabelle stellt eine typische Staging-Tabelle in einem Data Warehouse dar, die nach dem Vergleich eingehender Daten mit einer Zieltabelle und der Feststellung, ob die Datensätze identisch, geändert, neu oder gelöscht sind, ein Feld „Änderungscode“ ausfüllt.

Die letzte Aktion in Schritt 1 dieses zweistufigen Ansatzes besteht darin, jedem Datensatz ein Ladedatum hinzuzufügen, bevor jeder neue Datensatz, der nun mit seinem Änderungsindikator gekennzeichnet ist, in eine temporäre Delta Lake-Dimensionstabelle geschrieben wird. Dies wird die Eingabe von Schritt 2.

5-FACHER LEADER

Gartner®: Databricks als Leader für Cloud-Datenbanken

Schritt 2: Abschließen der Dimensionsänderungen

In Schritt 2 beginnen wir mit dem Lesen der intermediären oder temporären Dimensionstabelle in unserem Lakehouse. Wir verwenden das Indikatorfeld, das von der Komponente zur Erkennung von Änderungen abgeleitet wurde, und erstellen mithilfe einer einfachen Filterkomponente 3 separate Pfade. Wir werden nichts für identische Datensätze tun (gekennzeichnet mit einem "I"), da keine Änderungen erforderlich sind, sodass diese Datensätze gefiltert werden. Um in unserem Blog explizit zu sein, haben wir diesen Pfad verlassen. Er wäre jedoch für praktische Zwecke unnötig, es sei denn, mit diesen Datensätzen müsste etwas Bestimmtes getan werden.

Schritt 2: In Dimensionstabelle schreiben – Matillion liest aus der Zwischentabelle, filtert die Datensätze basierend auf ihrem jeweiligen Änderungs-Flag und ergreift geeignete Maßnahmen, um die neuen Daten in die Dimensionstabelle zu schreiben.
Schritt 2: In Dimensionstabelle schreiben - Matillion liest aus der Zwischentabelle, filtert die Datensätze basierend auf ihrem jeweiligen Änderungs-Flag und ergreift geeignete Maßnahmen, um die neuen Daten in die Dimensionstabelle zu schreiben.

Der nächste Pfad für neue oder geänderte Datensätze generiert einen neuen, aktuellen Datensatz für jeden identifizierten neuen oder geänderten Datensatz. Die Filterkomponente verarbeitet nur die Datensätze mit einem "N" (für neu) oder "C" (für geändert), wie von der Komponente zur Erkennung von Änderungen identifiziert. Die Umbenennungskomponente fungiert als Spalten-Mapper, um die geänderten Daten aus den Feldern der neuen Datensätze (identifiziert durch das Präfix compare_) den tatsächlichen Spaltennamen zuzuordnen, wie sie von der Delta Lake-Zieldimensionstabelle definiert werden. Schließlich ist die Komponente "Neue Felder" eine Berechnungskomponente, die so konfiguriert ist, dass sie den Ablauf-Zeitstempel der aktiven Datensätze auf "Unendlich" setzt und sie so als den aktuellsten Datensatz identifiziert.

Umbenennungskomponente – Die Umbenennungskomponente fungiert als Spalten-Mapper, um die geänderten Daten aus den Feldern der neuen Datensätze (identifiziert durch das Präfix compare_) den tatsächlichen Spaltennamen der Zieldimensionstabelle innerhalb des Lakehouse zuzuordnen.
Umbenennungskomponente - Die Umbenennungskomponente fungiert als Spalten-Mapper, um die geänderten Daten aus den Feldern der neuen Datensätze (identifiziert durch das Präfix compare_) den tatsächlichen Spaltennamen der Zieldimensionstabelle innerhalb des Lakehouse zuzuordnen.

Der letzte Pfad dient dazu, die vorhandenen Datensätze zu schließen oder ablaufen zu lassen, die als geändert oder gelöscht identifiziert wurden. Denken Sie daran, dass in SCD2 Änderungen als neuer Datensatz hinzugefügt werden (wie im obigen Pfad "Neu oder geändert" beschrieben) und daher jeder vorherige Datensatz als abgelaufen oder inaktiv markiert werden muss. In ähnlicher Weise benötigen gelöschte Datensätze ein Ablaufdatum, damit sie nicht mehr als aktiv identifiziert werden. Hier verarbeitet der Pfad "Geändert oder gelöscht" jedes "C" (für geändert) oder "D" (für gelöscht), indem die entsprechenden Spalten zugeordnet werden, die den Datensatz eindeutig für den Ablauf identifizieren. Nach der Identifizierung wird das Ablaufdatum auf den aktuellen Zeitstempel gesetzt und die Aktualisierung innerhalb der Delta Lake-Zieldimensionstabelle vorgenommen.

Dimensionstabelle nach SCD2-Aktualisierungen – Diese Tabelle stellt die endgültige Data-Warehouse-Dimensionstabelle dar, sobald alle Transaktionen aus der Staging-Tabelle angewendet wurden.
Dimensionstabelle nach SCD2-Aktualisierungen - Diese Tabelle stellt die endgültige Data-Warehouse-Dimensionstabelle dar, sobald alle Transaktionen aus der Staging-Tabelle angewendet wurden.

Fazit

Wir haben Ihnen gezeigt, wie Sie Slowly Changing Dimensions auf der Databricks Lakehouse Platform mithilfe der Low-Code/No-Code-Datenintegration von Matillion implementieren. Es ist eine ausgezeichnete Option für alle Organisationen, die GUI-basierte ETL-Tools wie Matillion bevorzugen, um Data Engineering-, Data Science- und Machine Learning-Pipelines in der Cloud zu implementieren und zu verwalten. Es erschließt wirklich die Leistungsfähigkeit von Delta Lake on Databricks und verbessert die Produktivität und bietet Ihnen die Leistung, Geschwindigkeit und Skalierbarkeit, um Ihre Cloud-Datenanalysen zu unterstützen.

Wenn Sie mehr über die Integration von Matillion und Databricks erfahren möchten, können Sie sich die detaillierte Dokumentation hier ansehen.

Testen Sie Databricks 14 Tage lang kostenlos.

(Dieser Blogbeitrag wurde mit KI-gestützten Tools übersetzt.) Originalbeitrag

Verpassen Sie keinen Beitrag von Databricks

Abonnieren Sie unseren Blog und erhalten Sie die neuesten Beiträge direkt in Ihren Posteingang.