Data Vault

Introductie tot datamodellering in Snowflake

Nuno Rocha

Director of Engineering

Introductie tot het data vault-model

  • Data vault-model: Modelleertechniek gericht op historische datatracking, met hubs, links en satellites.

Datavaultmodel

Introductie tot datamodellering in Snowflake

Componenten van data vault

  • Hubs: Unieke businessconcepten met één business key.

Datavaultmodel: hubs

Introductie tot datamodellering in Snowflake

Componenten van data vault (1)

  • Links: Leggen relaties en interacties tussen hubs vast.

Datavaultmodel: links

Introductie tot datamodellering in Snowflake

Componenten van data vault (2)

  • Satellites: Bewaren beschrijvende en historische details over hubs en links.

Datavaultmodel: satellites

Introductie tot datamodellering in Snowflake

Hubs bouwen

Datavaulthubs voor hogeschool

Introductie tot datamodellering in Snowflake

Hubs bouwen (1)

  • AUTOINCREMENT: Attribuut om automatisch unieke, oplopende numerieke waarden te genereren voor elke nieuwe rij.
CREATE OR REPLACE TABLE hub_students (
    student_key NUMBER(10,0) AUTOINCREMENT PRIMARY KEY
);
Introductie tot datamodellering in Snowflake

Hubs bouwen (2)

  • Maak een nieuwe hub met een automatisch gegenereerde unieke numerieke key en de concept-id van de hub:
CREATE OR REPLACE TABLE hub_students (
    student_key NUMBER(10,0) AUTOINCREMENT PRIMARY KEY,
    student_id NUMBER(10,0)
);
1 Vervolgens vermelden we de business key die elk concept identificeert; student_id identificeert elke student
Introductie tot datamodellering in Snowflake

Hubs bouwen (3)

  • Voeg historische trackingattributen toe:
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)
);
Introductie tot datamodellering in Snowflake

Hubs bouwen (4)

  • Maak een nieuwe 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)
);
  • Maak een nieuwe 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)
);
Introductie tot datamodellering in Snowflake

Links bouwen

Datavaultkoppelingen voor hogeschool

Introductie tot datamodellering in Snowflake

Links bouwen (1)

  • Maak een link-entiteit met een automatisch gegenereerde unieke numerieke key:
CREATE OR REPLACE TABLE link_enrollments (
    link_key NUMBER(10,0) AUTOINCREMENT PRIMARY KEY
);
Introductie tot datamodellering in Snowflake

Links bouwen (2)

  • Voeg relaties met andere entiteiten toe:
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)
);
Introductie tot datamodellering in Snowflake

Links bouwen (3)

  • Voeg historische trackingattributen toe:
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)
);
Introductie tot datamodellering in Snowflake

Links bouwen (4)

  • Maak een nieuwe offerings-linkentiteit:
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)
);
Introductie tot datamodellering in Snowflake

Satellites bouwen

Datavaultsatellieten voor hogeschool

Introductie tot datamodellering in Snowflake

Satellites bouwen (1)

  • Maak een nieuwe satellite-entiteit met alle conceptattributen:
CREATE OR REPLACE TABLE sat_student (
    name VARCHAR(255),
    email VARCHAR(255)
);
Introductie tot datamodellering in Snowflake

Satellites bouwen (2)

  • Voeg historische trackingattributen toe:
CREATE OR REPLACE TABLE sat_student (
    name VARCHAR(255),
    email VARCHAR(255),
    load_date TIMESTAMP,
    record_source VARCHAR(255)
);
Introductie tot datamodellering in Snowflake

Satellites bouwen (3)

  • Koppel de satellite aan de bijbehorende 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)
);
Introductie tot datamodellering in Snowflake

Satellites bouwen (4)

  • Maak een nieuwe class-satellite:
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)
);
  • Maak een nieuwe school-satellite:
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)
);
Introductie tot datamodellering in Snowflake

Overzicht: terminologie en functies

  • Data vault-model: Modelleertechniek gericht op historische datatracking, met hubs, links en satellites.
  • Hubs: Unieke businessconcepten met één business key.
  • Links: Leggen relaties en interacties tussen hubs vast.
  • Satellites: Bewaren beschrijvende en historische details over hubs en links.
  • CREATE OR REPLACE TABLE: SQL-commando om een tabel aan te maken of te vervangen.
  • PRIMARY KEY: SQL-clausule die een kolom als unieke identifier definieert.
  • AUTOINCREMENT: Attribuut dat automatisch unieke, oplopende numerieke waarden genereert per nieuwe rij.
  • FOREIGN KEY (...) REFERENCES (...): SQL-clausule om een koppeling tussen twee tabellen te maken.
Introductie tot datamodellering in Snowflake

Functie-overzicht

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)
);
Introductie tot datamodellering in Snowflake

Laten we oefenen!

Introductie tot datamodellering in Snowflake

Preparing Video For Download...