Data Vault

Einführung in das Data Modeling in Snowflake

Nuno Rocha

Director of Engineering

Einführung ins Data-Vault-Modell

  • Data-Vault-Modell: Modellierungstechnik zur Nachverfolgung historischer Daten, mit Hubs, Links und Satelliten.

Data vault model

Einführung in das Data Modeling in Snowflake

Komponenten von Data Vault

  • Hubs: Bilden eindeutige Geschäftskonzepte über einen einzigen Business Key ab.

Data vault model: hubs

Einführung in das Data Modeling in Snowflake

Komponenten von Data Vault (1)

  • Links: Erfassen Beziehungen und Interaktionen zwischen Hubs.

Data vault model: Links

Einführung in das Data Modeling in Snowflake

Komponenten von Data Vault (2)

  • Satelliten: Speichern beschreibende und historische Details zu Hubs und Links.

Data vault model: Satellites

Einführung in das Data Modeling in Snowflake

Hubs erstellen

College data vault hubs

Einführung in das Data Modeling in Snowflake

Hubs erstellen (1)

  • AUTOINCREMENT: Attribut, das automatisch eindeutige, fortlaufend steigende numerische Werte pro neuer Zeile erzeugt.
CREATE OR REPLACE TABLE hub_students (
    student_key NUMBER(10,0) AUTOINCREMENT PRIMARY KEY
);
Einführung in das Data Modeling in Snowflake

Hubs erstellen (2)

  • Erstelle einen neuen Hub mit automatisch generiertem, eindeutigem Zahlenschlüssel und der Konzept-ID des Hubs:
CREATE OR REPLACE TABLE hub_students (
    student_key NUMBER(10,0) AUTOINCREMENT PRIMARY KEY,
    student_id NUMBER(10,0)
);
1 Als Nächstes listen wir den Business Key auf, der jedes Konzept identifiziert; student_id identifiziert jede:n Student:in
Einführung in das Data Modeling in Snowflake

Hubs erstellen (3)

  • Füge Attribute zur Historiennachverfolgung hinzu:
CREATE OR REPLACE TABLE hub_students (
    student_key NUMBER(10,0) AUTOINCREMENT PRIMARY KEY,
    student_id NUMBER(10,0),
    load_date TIMESTAMP,
    record_source VARCHAR(255)
);
Einführung in das Data Modeling in Snowflake

Hubs erstellen (4)

  • Erstelle einen neuen Classes-Hub:
CREATE OR REPLACE TABLE hub_classes (
    class_key NUMBER(10,0)
          AUTOINCREMENT 
          PRIMARY KEY,
    class_id NUMBER(10,0),
    load_date TIMESTAMP,
    record_source VARCHAR(255)
);
  • Erstelle einen neuen Schools-Hub:
CREATE OR REPLACE TABLE hub_schools (
    school_key NUMBER(10,0) 
          AUTOINCREMENT 
          PRIMARY KEY,
    school_id NUMBER(10,0),
    load_date TIMESTAMP,
    record_source VARCHAR(255)
);
Einführung in das Data Modeling in Snowflake

Links erstellen

College data vault links

Einführung in das Data Modeling in Snowflake

Links erstellen (1)

  • Erstelle eine Link-Entität mit automatisch generiertem, eindeutigem Zahlenschlüssel:
CREATE OR REPLACE TABLE link_enrollments (
    link_key NUMBER(10,0) AUTOINCREMENT PRIMARY KEY
);
Einführung in das Data Modeling in Snowflake

Links erstellen (2)

  • Füge Beziehungen zu anderen Entitäten hinzu:
CREATE OR REPLACE TABLE link_enrollments (
    link_key NUMBER(10,0) AUTOINCREMENT PRIMARY KEY,
    student_key NUMBER(10,0),
    class_key NUMBER(10,0),
    FOREIGN KEY (student_key) REFERENCES hub_students(student_key),
    FOREIGN KEY (class_key) REFERENCES hub_classes(class_key)
);
Einführung in das Data Modeling in Snowflake

Links erstellen (3)

  • Füge Attribute zur Historiennachverfolgung hinzu:
CREATE OR REPLACE TABLE link_enrollments (
    link_key NUMBER(10,0) AUTOINCREMENT PRIMARY KEY,
    student_key NUMBER(10,0),
    class_key NUMBER(10,0),
    load_date TIMESTAMP,
    record_source VARCHAR(255),
    FOREIGN KEY (student_key) REFERENCES hub_students(student_key),
    FOREIGN KEY (class_key) REFERENCES hub_classes(class_key)
);
Einführung in das Data Modeling in Snowflake

Links erstellen (4)

  • Erstelle eine neue Offerings-Link-Entität:
CREATE OR REPLACE TABLE link_offerings (
    link_key NUMBER(10,0) AUTOINCREMENT PRIMARY KEY,
    class_key NUMBER(10,0),
    school_key NUMBER(10,0),
    load_date TIMESTAMP,
    record_source VARCHAR(255),
    FOREIGN KEY (class_key) REFERENCES hub_classes(class_key),
    FOREIGN KEY (school_key) REFERENCES hub_schools(school_key)
);
Einführung in das Data Modeling in Snowflake

Satelliten erstellen

College data vault satellites

Einführung in das Data Modeling in Snowflake

Satelliten erstellen (1)

  • Erstelle eine neue Satelliten-Entität mit allen Konzeptattributen:
CREATE OR REPLACE TABLE sat_student (
    name VARCHAR(255),
    email VARCHAR(255)
);
Einführung in das Data Modeling in Snowflake

Satelliten erstellen (2)

  • Füge Attribute zur Historiennachverfolgung hinzu:
CREATE OR REPLACE TABLE sat_student (
    name VARCHAR(255),
    email VARCHAR(255),
    load_date TIMESTAMP,
    record_source VARCHAR(255)
);
Einführung in das Data Modeling in Snowflake

Satelliten erstellen (3)

  • Verknüpfe den Satelliten mit seinem zugehörigen Hub:
CREATE OR REPLACE TABLE sat_student (
    student_key NUMBER(10,0),
    name VARCHAR(255),
    email VARCHAR(255),
    load_date TIMESTAMP,
    record_source VARCHAR(255),
    FOREIGN KEY (student_key) REFERENCES hub_students(student_key)
);
Einführung in das Data Modeling in Snowflake

Satelliten erstellen (4)

  • Erstelle einen neuen Class-Satelliten:
CREATE OR REPLACE TABLE sat_class (
    class_key NUMBER(10,0),
    class_name VARCHAR(255),
    load_date TIMESTAMP,
    record_source VARCHAR(255),
    FOREIGN KEY (class_key) 
    REFERENCES hub_classes(class_key)
);
  • Erstelle einen neuen School-Satelliten:
CREATE OR REPLACE TABLE sat_school (
    school_key NUMBER(10,0),
    school_name VARCHAR(255),
    load_date TIMESTAMP,
    record_source VARCHAR(255),
    FOREIGN KEY (school_key) 
    REFERENCES hub_schools(school_key)
);
Einführung in das Data Modeling in Snowflake

Begriffe und Funktionen im Überblick

  • Data-Vault-Modell: Modellierungstechnik zur Nachverfolgung historischer Daten, mit Hubs, Links und Satelliten.
  • Hubs: Bilden eindeutige Geschäftskonzepte über einen einzigen Business Key ab.
  • Links: Erfassen Beziehungen und Interaktionen zwischen Hubs.
  • Satelliten: Speichern beschreibende und historische Details zu Hubs und Links.
  • CREATE OR REPLACE TABLE: SQL-Befehl zum Erstellen oder Ersetzen einer Tabellenstruktur.
  • PRIMARY KEY: SQL-Klausel, um eine Spalte als eindeutigen Bezeichner festzulegen.
  • AUTOINCREMENT: Attribut, das automatisch eindeutige, fortlaufend steigende numerische Werte pro neuer Zeile erzeugt.
  • FOREIGN KEY (...) REFERENCES (...): SQL-Klausel, um eine Verknüpfung zwischen zwei Tabellen zu erstellen.
Einführung in das Data Modeling in Snowflake

Funktionen im Überblick

CREATE OR REPLACE TABLE table_name (
      -- Create an auto generated unique value as primary key
      unique_key column_datatype AUTOINCREMENT PRIMARY KEY,
      other_business_key column_datatype,
      foreign_column column_datatype,
      other_foreign_column column_datatype,
      -- Adding relationship with other entities
      FOREIGN KEY(foreign_column) REFERENCES foreign_table(PK_from_foreign_table),
      FOREIGN KEY(other_foreign) REFERENCES foreign_table(PK_from_other_foreign)
);
Einführung in das Data Modeling in Snowflake

Lass uns üben!

Einführung in das Data Modeling in Snowflake

Preparing Video For Download...