Data Vault

Wprowadzenie do modelowania danych w Snowflake

Nuno Rocha

Director of Engineering

Wprowadzenie do modelu Data Vault

  • Model Data Vault: Technika modelowania skupiona na śledzeniu historii danych, oparta na hubach, linkach i satelitach.

Model Data Vault

Wprowadzenie do modelowania danych w Snowflake

Komponenty Data Vault

  • Huby: Reprezentują unikalne koncepty biznesowe za pomocą pojedynczego klucza biznesowego.

Model Data Vault: huby

Wprowadzenie do modelowania danych w Snowflake

Komponenty Data Vault (1)

  • Linki: Odwzorowują relacje i interakcje między hubami.

Model Data Vault: linki

Wprowadzenie do modelowania danych w Snowflake

Komponenty Data Vault (2)

  • Satelity: Przechowują opisowe i historyczne szczegóły dotyczące hubów i linków.

Model Data Vault: satelity

Wprowadzenie do modelowania danych w Snowflake

Budowanie hubów

Huby Data Vault uczelni

Wprowadzenie do modelowania danych w Snowflake

Budowanie hubów (1)

  • AUTOINCREMENT: Właściwość kolumny automatycznie generująca unikalne, rosnące wartości numeryczne dla każdego nowego wiersza.
CREATE OR REPLACE TABLE hub_students (
    student_key NUMBER(10,0) AUTOINCREMENT PRIMARY KEY
);
Wprowadzenie do modelowania danych w Snowflake

Budowanie hubów (2)

  • Utwórz nowy hub z automatycznie generowanym kluczem numerycznym oraz identyfikatorem konceptu:
CREATE OR REPLACE TABLE hub_students (
    student_key NUMBER(10,0) AUTOINCREMENT PRIMARY KEY,
    student_id NUMBER(10,0)
);
1 Następnie wskazujemy klucz biznesowy identyfikujący każdy koncept – student_id identyfikuje każdego studenta
Wprowadzenie do modelowania danych w Snowflake

Budowanie hubów (3)

  • Dodaj atrybuty śledzenia historycznego:
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)
);
Wprowadzenie do modelowania danych w Snowflake

Budowanie hubów (4)

  • Utwórz nowy hub klas:
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)
);
  • Utwórz nowy hub szkół:
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)
);
Wprowadzenie do modelowania danych w Snowflake

Budowanie linków

Linki Data Vault uczelni

Wprowadzenie do modelowania danych w Snowflake

Budowanie linków (1)

  • Utwórz encję linku z automatycznie generowanym kluczem numerycznym:
CREATE OR REPLACE TABLE link_enrollments (
    link_key NUMBER(10,0) AUTOINCREMENT PRIMARY KEY
);
Wprowadzenie do modelowania danych w Snowflake

Budowanie linków (2)

  • Dodaj relacje z innymi encjami:
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)
);
Wprowadzenie do modelowania danych w Snowflake

Budowanie linków (3)

  • Dodaj atrybuty śledzenia historycznego:
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)
);
Wprowadzenie do modelowania danych w Snowflake

Budowanie linków (4)

  • Utwórz nową encję linku ofert:
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)
);
Wprowadzenie do modelowania danych w Snowflake

Budowanie satelitów

Satelity Data Vault uczelni

Wprowadzenie do modelowania danych w Snowflake

Budowanie satelitów (1)

  • Utwórz nową encję satelity zawierającą wszystkie atrybuty konceptu:
CREATE OR REPLACE TABLE sat_student (
    name VARCHAR(255),
    email VARCHAR(255)
);
Wprowadzenie do modelowania danych w Snowflake

Budowanie satelitów (2)

  • Dodaj atrybuty śledzenia historycznego:
CREATE OR REPLACE TABLE sat_student (
    name VARCHAR(255),
    email VARCHAR(255),
    load_date TIMESTAMP,
    record_source VARCHAR(255)
);
Wprowadzenie do modelowania danych w Snowflake

Budowanie satelitów (3)

  • Dodaj powiązanie między satelitą a odpowiadającym mu hubem:
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)
);
Wprowadzenie do modelowania danych w Snowflake

Budowanie satelitów (4)

  • Utwórz nowy satelita klas:
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)
);
  • Utwórz nowy satelita szkół:
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)
);
Wprowadzenie do modelowania danych w Snowflake

Przegląd terminologii i funkcji

  • Model Data Vault: Technika modelowania skupiona na śledzeniu historii danych, oparta na hubach, linkach i satelitach.
  • Huby: Reprezentują unikalne koncepty biznesowe za pomocą pojedynczego klucza biznesowego.
  • Linki: Odwzorowują relacje i interakcje między hubami.
  • Satelity: Przechowują opisowe i historyczne szczegóły dotyczące hubów i linków.
  • CREATE OR REPLACE TABLE: Polecenie SQL do tworzenia lub zastępowania struktury tabeli.
  • PRIMARY KEY: Klauzula SQL definiująca kolumnę jako unikalny identyfikator.
  • AUTOINCREMENT: Właściwość kolumny automatycznie generująca unikalne, rosnące wartości numeryczne dla każdego nowego wiersza.
  • FOREIGN KEY (...) REFERENCES (...): Klauzula SQL tworząca powiązanie między dwiema tabelami.
Wprowadzenie do modelowania danych w Snowflake

Przegląd funkcji

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)
);
Wprowadzenie do modelowania danych w Snowflake

Czas na ćwiczenia!

Wprowadzenie do modelowania danych w Snowflake

Preparing Video For Download...