Data Vault

Introduzione al Data Modeling in Snowflake

Nuno Rocha

Director of Engineering

Introduzione al modello Data Vault

  • Modello Data Vault: Tecnica di modellazione incentrata sulla tracciabilità storica, basata su hub, link e satelliti.

Modello Data Vault

Introduzione al Data Modeling in Snowflake

Componenti del Data Vault

  • Hub: Rappresentano concetti di business univoci usando una singola business key.

Modello Data Vault: hub

Introduzione al Data Modeling in Snowflake

Componenti del Data Vault (1)

  • Link: Catturano relazioni e interazioni tra hub.

Modello Data Vault: link

Introduzione al Data Modeling in Snowflake

Componenti del Data Vault (2)

  • Satelliti: Archiviano dettagli descrittivi e storici relativi a hub e link.

Modello Data Vault: satelliti

Introduzione al Data Modeling in Snowflake

Creare gli hub

Hub del data vault universitario

Introduzione al Data Modeling in Snowflake

Creare gli hub (1)

  • AUTOINCREMENT: Proprietà dell'attributo che genera automaticamente valori numerici univoci e crescenti per ogni nuova riga.
CREATE OR REPLACE TABLE hub_students (
    student_key NUMBER(10,0) AUTOINCREMENT PRIMARY KEY
);
Introduzione al Data Modeling in Snowflake

Creare gli hub (2)

  • Crea un nuovo hub con una chiave numerica univoca generata automaticamente e l'id del concetto dell'hub:
CREATE OR REPLACE TABLE hub_students (
    student_key NUMBER(10,0) AUTOINCREMENT PRIMARY KEY,
    student_id NUMBER(10,0)
);
1 Poi elenchiamo la business key che identifica ogni concetto: student_id identificherà ogni studente
Introduzione al Data Modeling in Snowflake

Creare gli hub (3)

  • Aggiungi attributi per la tracciabilità storica:
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)
);
Introduzione al Data Modeling in Snowflake

Creare gli hub (4)

  • Crea il nuovo hub delle classi:
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)
);
  • Crea il nuovo hub delle scuole:
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)
);
Introduzione al Data Modeling in Snowflake

Creare i link

Link del data vault universitario

Introduzione al Data Modeling in Snowflake

Creare i link (1)

  • Crea un'entità link con una chiave numerica univoca generata automaticamente:
CREATE OR REPLACE TABLE link_enrollments (
    link_key NUMBER(10,0) AUTOINCREMENT PRIMARY KEY
);
Introduzione al Data Modeling in Snowflake

Creare i link (2)

  • Aggiungi relazioni con altre entità:
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)
);
Introduzione al Data Modeling in Snowflake

Creare i link (3)

  • Aggiungi attributi per la tracciabilità storica:
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)
);
Introduzione al Data Modeling in Snowflake

Creare i link (4)

  • Crea la nuova entità link delle offerte:
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)
);
Introduzione al Data Modeling in Snowflake

Creare i satelliti

Satelliti del data vault universitario

Introduzione al Data Modeling in Snowflake

Creare i satelliti (1)

  • Crea una nuova entità satellite con tutti gli attributi del concetto:
CREATE OR REPLACE TABLE sat_student (
    name VARCHAR(255),
    email VARCHAR(255)
);
Introduzione al Data Modeling in Snowflake

Creare i satelliti (2)

  • Aggiungi attributi per la tracciabilità storica:
CREATE OR REPLACE TABLE sat_student (
    name VARCHAR(255),
    email VARCHAR(255),
    load_date TIMESTAMP,
    record_source VARCHAR(255)
);
Introduzione al Data Modeling in Snowflake

Creare i satelliti (3)

  • Collega il satellite al suo hub corrispondente:
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)
);
Introduzione al Data Modeling in Snowflake

Creare i satelliti (4)

  • Crea un nuovo satellite delle classi:
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)
);
  • Crea un nuovo satellite delle scuole:
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)
);
Introduzione al Data Modeling in Snowflake

Panoramica di termini e funzioni

  • Modello Data Vault: Tecnica di modellazione incentrata sulla tracciabilità storica, basata su hub, link e satelliti.
  • Hub: Rappresentano concetti di business univoci con una singola business key.
  • Link: Catturano relazioni e interazioni tra hub.
  • Satelliti: Archiviano dettagli descrittivi e storici relativi a hub e link.
  • CREATE OR REPLACE TABLE: Comando SQL per creare o sostituire una tabella.
  • PRIMARY KEY: Clausola SQL che definisce l'identificatore univoco.
  • AUTOINCREMENT: Proprietà che genera automaticamente valori numerici univoci e crescenti per ogni nuova riga.
  • FOREIGN KEY (...) REFERENCES (...): Clausola SQL per creare un collegamento tra due tabelle.
Introduzione al Data Modeling in Snowflake

Panoramica delle funzioni

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)
);
Introduzione al Data Modeling in Snowflake

Ayo berlatih!

Introduzione al Data Modeling in Snowflake

Preparing Video For Download...