Data Vault

Introduktion till datamodellering i Snowflake

Nuno Rocha

Director of Engineering

Introduktion till data vault-modellen

  • Data vault-modell: En modelleringsteknik för historisk dataspårning, uppbyggd av hubbar, länkar och satelliter.

Data vault-modell

Introduktion till datamodellering i Snowflake

Komponenter i data vault

  • Hubbar: Representerar unika affärskoncept med hjälp av en enda affärsnyckel.

Data vault-modell: hubbar

Introduktion till datamodellering i Snowflake

Komponenter i data vault (1)

  • Länkar: Fångar relationer och interaktioner mellan hubbar.

Data vault-modell: länkar

Introduktion till datamodellering i Snowflake

Komponenter i data vault (2)

  • Satelliter: Lagrar beskrivande och historiska detaljer kopplade till hubbar och länkar.

Data vault-modell: satelliter

Introduktion till datamodellering i Snowflake

Bygga hubbar

Hubbar i college-data vault

Introduktion till datamodellering i Snowflake

Bygga hubbar (1)

  • AUTOINCREMENT: Attributegenskap som automatiskt genererar unika, sekventiellt ökande numeriska värden för varje ny rad.
CREATE OR REPLACE TABLE hub_students (
    student_key NUMBER(10,0) AUTOINCREMENT PRIMARY KEY
);
Introduktion till datamodellering i Snowflake

Bygga hubbar (2)

  • Skapa en ny hubb med en automatiskt genererad unik numerisk nyckel och hubbens koncept-id:
CREATE OR REPLACE TABLE hub_students (
    student_key NUMBER(10,0) AUTOINCREMENT PRIMARY KEY,
    student_id NUMBER(10,0)
);
1 Därefter listar vi affärsnyckeln som identifierar varje koncept – student_id identifierar varje student.
Introduktion till datamodellering i Snowflake

Bygga hubbar (3)

  • Lägg till attribut för historisk spårning:
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)
);
Introduktion till datamodellering i Snowflake

Bygga hubbar (4)

  • Skapa ny hubb för klasser:
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)
);
  • Skapa ny hubb för skolor:
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)
);
Introduktion till datamodellering i Snowflake

Bygga länkar

Länkar i college-data vault

Introduktion till datamodellering i Snowflake

Bygga länkar (1)

  • Skapa en länkentitet med en automatiskt genererad unik numerisk nyckel:
CREATE OR REPLACE TABLE link_enrollments (
    link_key NUMBER(10,0) AUTOINCREMENT PRIMARY KEY
);
Introduktion till datamodellering i Snowflake

Bygga länkar (2)

  • Lägg till relationer till andra entiteter:
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)
);
Introduktion till datamodellering i Snowflake

Bygga länkar (3)

  • Lägg till attribut för historisk spårning:
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)
);
Introduktion till datamodellering i Snowflake

Bygga länkar (4)

  • Skapa ny länkentitet för kursutbud:
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)
);
Introduktion till datamodellering i Snowflake

Bygga satelliter

Satelliter i college-data vault

Introduktion till datamodellering i Snowflake

Bygga satelliter (1)

  • Skapa en ny satellitentitet med alla konceptattribut:
CREATE OR REPLACE TABLE sat_student (
    name VARCHAR(255),
    email VARCHAR(255)
);
Introduktion till datamodellering i Snowflake

Bygga satelliter (2)

  • Lägg till attribut för historisk spårning:
CREATE OR REPLACE TABLE sat_student (
    name VARCHAR(255),
    email VARCHAR(255),
    load_date TIMESTAMP,
    record_source VARCHAR(255)
);
Introduktion till datamodellering i Snowflake

Bygga satelliter (3)

  • Lägg till en koppling mellan satelliten och dess respektive hubb:
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)
);
Introduktion till datamodellering i Snowflake

Bygga satelliter (4)

  • Skapa en ny klasssatellit:
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)
);
  • Skapa en ny skolsatellit:
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)
);
Introduktion till datamodellering i Snowflake

Översikt över terminologi och funktioner

  • Data vault-modell: En modelleringsteknik för historisk dataspårning, uppbyggd av hubbar, länkar och satelliter.
  • Hubbar: Representerar unika affärskoncept med hjälp av en enda affärsnyckel.
  • Länkar: Fångar relationer och interaktioner mellan hubbar.
  • Satelliter: Lagrar beskrivande och historiska detaljer kopplade till hubbar och länkar.
  • CREATE OR REPLACE TABLE: SQL-kommando för att skapa eller ersätta en tabellstruktur.
  • PRIMARY KEY: SQL-sats som definierar en kolumn som unik identifierare.
  • AUTOINCREMENT: Attributegenskap som automatiskt genererar unika, sekventiellt ökande numeriska värden för varje ny rad.
  • FOREIGN KEY (...) REFERENCES (...): SQL-sats för att skapa en koppling mellan två tabeller.
Introduktion till datamodellering i Snowflake

Funktionsöversikt

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)
);
Introduktion till datamodellering i Snowflake

Nu kör vi en övning!

Introduktion till datamodellering i Snowflake

Preparing Video For Download...