Data Vault

Introducere în modelarea datelor în Snowflake

Nuno Rocha

Director of Engineering

Introducere în modelul data vault

  • Modelul data vault: Tehnică de modelare axată pe urmărirea istoricului datelor, caracterizată prin utilizarea hub-urilor, legăturilor și sateliților.

Modelul data vault

Introducere în modelarea datelor în Snowflake

Componentele data vault

  • Hub-uri: Reprezintă concepte de afaceri unice folosind o singură cheie de afaceri.

Modelul data vault: hub-uri

Introducere în modelarea datelor în Snowflake

Componentele data vault (1)

  • Legături: Captează relațiile și interacțiunile dintre hub-uri.

Modelul data vault: Legături

Introducere în modelarea datelor în Snowflake

Componentele data vault (2)

  • Sateliți: Stochează detalii descriptive și istorice legate de hub-uri și legături.

Modelul data vault: Sateliți

Introducere în modelarea datelor în Snowflake

Construirea hub-urilor

Hub-uri în data vault universitar

Introducere în modelarea datelor în Snowflake

Construirea hub-urilor (1)

  • AUTOINCREMENT: Proprietate care generează automat valori numerice unice, secvențiale, pentru fiecare rând nou.
CREATE OR REPLACE TABLE hub_students (
    student_key NUMBER(10,0) AUTOINCREMENT PRIMARY KEY
);
Introducere în modelarea datelor în Snowflake

Construirea hub-urilor (2)

  • Creați un hub nou cu o cheie numerică unică generată automat și identificatorul conceptului:
CREATE OR REPLACE TABLE hub_students (
    student_key NUMBER(10,0) AUTOINCREMENT PRIMARY KEY,
    student_id NUMBER(10,0)
);
1 Apoi, listăm cheia de afaceri care identifică fiecare concept; student_id va identifica fiecare student
Introducere în modelarea datelor în Snowflake

Construirea hub-urilor (3)

  • Adăugați atribute pentru urmărirea istoricului:
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)
);
Introducere în modelarea datelor în Snowflake

Construirea hub-urilor (4)

  • Creați un hub nou pentru cursuri:
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ți un hub nou pentru școli:
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)
);
Introducere în modelarea datelor în Snowflake

Construirea legăturilor

Legături în data vault universitar

Introducere în modelarea datelor în Snowflake

Construirea legăturilor (1)

  • Creați o entitate legătură cu o cheie numerică unică generată automat:
CREATE OR REPLACE TABLE link_enrollments (
    link_key NUMBER(10,0) AUTOINCREMENT PRIMARY KEY
);
Introducere în modelarea datelor în Snowflake

Construirea legăturilor (2)

  • Adăugați relații cu alte entități:
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)
);
Introducere în modelarea datelor în Snowflake

Construirea legăturilor (3)

  • Adăugați atribute pentru urmărirea istoricului:
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)
);
Introducere în modelarea datelor în Snowflake

Construirea legăturilor (4)

  • Creați o entitate legătură pentru oferte:
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)
);
Introducere în modelarea datelor în Snowflake

Construirea sateliților

Sateliți în data vault universitar

Introducere în modelarea datelor în Snowflake

Construirea sateliților (1)

  • Creați o nouă entitate satelit cu toate atributele conceptului:
CREATE OR REPLACE TABLE sat_student (
    name VARCHAR(255),
    email VARCHAR(255)
);
Introducere în modelarea datelor în Snowflake

Construirea sateliților (2)

  • Adăugați atribute pentru urmărirea istoricului:
CREATE OR REPLACE TABLE sat_student (
    name VARCHAR(255),
    email VARCHAR(255),
    load_date TIMESTAMP,
    record_source VARCHAR(255)
);
Introducere în modelarea datelor în Snowflake

Construirea sateliților (3)

  • Adăugați o legătură între satelit și hub-ul corespunzător:
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)
);
Introducere în modelarea datelor în Snowflake

Construirea sateliților (4)

  • Creați un satelit nou pentru cursuri:
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ți un satelit nou pentru școli:
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)
);
Introducere în modelarea datelor în Snowflake

Prezentare generală a terminologiei și funcțiilor

  • Modelul data vault: Tehnică de modelare axată pe urmărirea istoricului datelor, caracterizată prin utilizarea hub-urilor, legăturilor și sateliților.
  • Hub-uri: Reprezintă concepte de afaceri unice folosind o singură cheie de afaceri.
  • Legături: Captează relațiile și interacțiunile dintre hub-uri.
  • Sateliți: Stochează detalii descriptive și istorice legate de hub-uri și legături.
  • CREATE OR REPLACE TABLE: Comandă SQL pentru a crea sau înlocui o structură de tabel.
  • PRIMARY KEY: Clauză SQL pentru a defini o coloană ca identificator unic.
  • AUTOINCREMENT: Proprietate care generează automat valori numerice unice, secvențiale, pentru fiecare rând nou.
  • FOREIGN KEY (...) REFERENCES (...): Clauză SQL pentru a crea o legătură între două tabele.
Introducere în modelarea datelor în Snowflake

Prezentare generală a funcțiilor

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)
);
Introducere în modelarea datelor în Snowflake

Să exersăm!

Introducere în modelarea datelor în Snowflake

Preparing Video For Download...