Zum Hauptinhalt springen

Bring deine Daten unter einen Data Contract

Wie bringst du eine bestehende Tabelle unter einen Data Contract?

Von Dr. Simon Harrer · · Video 1:56 · 8 Folien

Kurz gesagt

Importiere die bestehende Tabelle mit der Data Contract CLI und teste die Daten gegen das Ergebnis. Ergänze dann, was nur du weißt. Danach ist der Data Contract die Source of Truth, und jede Änderung beginnt im Data Contract.

Auf YouTube ansehen
Folie 1 von Entropy Explains Folge 5, Eine Tabelle ohne Contract: Die orders-Tabelle läuft seit Jahren in Produktion.

Eine Tabelle ohne Contract

Die orders-Tabelle läuft seit Jahren in Produktion. Drei Teams nutzen sie, aber es gibt keinen Data Contract. Wenn du den Data Contract von Hand schreibst, tippst du jede Spalte und jeden Typ erneut ein. Dabei machst du Fehler. Also startest du von den Daten, die du schon hast.

Folie 2 von Entropy Explains Folge 5, Aus der Datenbank importieren: Die Data Contract CLI importiert die Tabelle direkt aus der Datenbank.

Aus der Datenbank importieren

Die Data Contract CLI importiert die Tabelle direkt aus der Datenbank. Du gibst ihr die Quelle, die Datenbank und die Tabelle. Der Befehl schreibt eine neue Data-Contract-Datei. Du tippst die Spalten und Typen nicht von Hand ein, also enthält der Data Contract keine Tippfehler.

Folie 3 von Entropy Explains Folge 5, Struktur und Server: Der Import liest die Spalten, die Typen, die Nullability, die Primary Keys und die Kommentare.

Struktur und Server

Der Import liest die Spalten, die Typen, die Nullability, die Primary Keys und die Kommentare. Er schreibt außerdem einen servers-Block. So weiß der Data Contract, wo die Daten liegen. Der Status des neuen Data Contracts ist draft.

Folie 4 von Entropy Explains Folge 5, Der erste Test ist die Baseline: Jetzt testest du den Data Contract gegen die echten Daten.

Der erste Test ist die Baseline

Jetzt testest du den Data Contract gegen die echten Daten. Alle Checks sind grün, weil der Data Contract die Daten so zeigt, wie sie sind. Dieses Ergebnis ist deine Baseline. Von hier an lässt jede Änderung in der Datenbank, die nicht zum Data Contract passt, einen Test fehlschlagen.

Folie 5 von Entropy Explains Folge 5, Ergänze, was nur du weißt: Der Import kennt nur die Struktur.

Ergänze, was nur du weißt

Der Import kennt nur die Struktur. Die Bedeutung der Daten und deine Versprechen kommen von dir. Du ergänzt eine Beschreibung, eine Klassifizierung, eine Qualitätsregel, ein Freshness-Versprechen und einen Owner. Diese Informationen kann dir die Datenbank nicht geben.

Folie 6 von Entropy Explains Folge 5, Der Test findet einen Fehler: Du führst den Test erneut aus.

Der Test findet einen Fehler

Du führst den Test erneut aus. Drei Bestellungen haben ein negatives total. Diesen Fehler hat vorher niemand gesehen. Du korrigierst die Daten, bis alle Checks grün sind. Dann setzt du den Status des Data Contracts auf active.

Folie 7 von Entropy Explains Folge 5, Der Data Contract führt: Du importierst nur einmal.

Der Data Contract führt

Du importierst nur einmal. Von hier an ist der Data Contract die Source of Truth. Jede Änderung beginnt im Data Contract und wird in der CI getestet. Dokumentation, SQL-DDL, dbt-Modelle und der Eintrag im Datenmarktplatz kommen daraus.

Folie 8 von Entropy Explains Folge 5, Einmal data-first, danach contract-first: Importiere, was du hast, teste es und ergänze, was nur du weißt.

Einmal data-first, danach contract-first

Importiere, was du hast, teste es und ergänze, was nur du weißt. Data-first gehst du nur einmal. Danach ist jede Änderung contract-first. Der Data Contract führt, und die Datenbank folgt. Der Pipeline-Code, die Dokumentation und der Eintrag im Datenmarktplatz folgen ebenfalls dem Data Contract.