Data Vault

Вступ до моделювання даних у Snowflake

Nuno Rocha

Director of Engineering

Вступ до моделі Data Vault

  • Модель Data Vault: техніка моделювання з фокусом на відстеженні історії даних; використовує хаби, лінки та супутники.

Модель Data Vault

Вступ до моделювання даних у Snowflake

Компоненти Data Vault

  • Хаби (Hubs): відображають унікальні бізнес-концепти через один бізнес-ключ.

Модель Data Vault: хаби

Вступ до моделювання даних у Snowflake

Компоненти Data Vault (1)

  • Лінки (Links): фіксують зв'язки та взаємодії між хабами.

Модель Data Vault: лінки

Вступ до моделювання даних у Snowflake

Компоненти Data Vault (2)

  • Супутники (Satellites): зберігають описові та історичні деталі, пов'язані з хабами й лінками.

Модель Data Vault: супутники

Вступ до моделювання даних у Snowflake

Створення хабів

Хаби Data Vault для коледжу

Вступ до моделювання даних у Snowflake

Створення хабів (1)

  • AUTOINCREMENT: властивість атрибута, що автоматично генерує унікальні послідовно зростаючі числові значення для кожного нового рядка.
CREATE OR REPLACE TABLE hub_students (
    student_key NUMBER(10,0) AUTOINCREMENT PRIMARY KEY
);
Вступ до моделювання даних у Snowflake

Створення хабів (2)

  • Створіть новий хаб з унікальним числовим ключем, що генерується автоматично, і ідентифікатором концепту хабу:
CREATE OR REPLACE TABLE hub_students (
    student_key NUMBER(10,0) AUTOINCREMENT PRIMARY KEY,
    student_id NUMBER(10,0)
);
1 Далі ми перелічуємо бізнес-ключ, що ідентифікує кожен концепт: student_id ідентифікує кожного студента
Вступ до моделювання даних у Snowflake

Створення хабів (3)

  • Додайте атрибути для історичного відстеження:
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)
);
Вступ до моделювання даних у Snowflake

Створення хабів (4)

  • Створіть хаб для класів:
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)
);
  • Створіть хаб для шкіл:
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)
);
Вступ до моделювання даних у Snowflake

Створення лінків

Лінки Data Vault для коледжу

Вступ до моделювання даних у Snowflake

Створення лінків (1)

  • Створіть сутність лінка з унікальним числовим ключем, що генерується автоматично:
CREATE OR REPLACE TABLE link_enrollments (
    link_key NUMBER(10,0) AUTOINCREMENT PRIMARY KEY
);
Вступ до моделювання даних у Snowflake

Створення лінків (2)

  • Додайте зв'язки з іншими сутностями:
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)
);
Вступ до моделювання даних у Snowflake

Створення лінків (3)

  • Додайте атрибути для історичного відстеження:
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)
);
Вступ до моделювання даних у Snowflake

Створення лінків (4)

  • Створіть лінк для пропозицій курсів:
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)
);
Вступ до моделювання даних у Snowflake

Створення супутників

Супутники Data Vault для коледжу

Вступ до моделювання даних у Snowflake

Створення супутників (1)

  • Створіть супутник із переліком усіх атрибутів концепту:
CREATE OR REPLACE TABLE sat_student (
    name VARCHAR(255),
    email VARCHAR(255)
);
Вступ до моделювання даних у Snowflake

Створення супутників (2)

  • Додайте атрибути для історичного відстеження:
CREATE OR REPLACE TABLE sat_student (
    name VARCHAR(255),
    email VARCHAR(255),
    load_date TIMESTAMP,
    record_source VARCHAR(255)
);
Вступ до моделювання даних у Snowflake

Створення супутників (3)

  • Додайте зв'язок між супутником і відповідним хабом:
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)
);
Вступ до моделювання даних у Snowflake

Створення супутників (4)

  • Створіть супутник для класів:
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)
);
  • Створіть супутник для шкіл:
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)
);
Вступ до моделювання даних у Snowflake

Термінологія та огляд функцій

  • Модель Data Vault: техніка моделювання з фокусом на відстеженні історії даних; використовує хаби, лінки та супутники.
  • Хаби: відображають унікальні бізнес-концепти через один бізнес-ключ.
  • Лінки: фіксують зв'язки та взаємодії між хабами.
  • Супутники: зберігають описові та історичні деталі, пов'язані з хабами й лінками.
  • CREATE OR REPLACE TABLE: команда SQL для створення або заміни структури таблиці.
  • PRIMARY KEY: конструкція SQL для визначення унікального ідентифікатора стовпця.
  • AUTOINCREMENT: властивість, що автоматично генерує унікальні, послідовно зростаючі числа для нових рядків.
  • FOREIGN KEY (...) REFERENCES (...): конструкція SQL для створення зв'язку між таблицями.
Вступ до моделювання даних у Snowflake

Огляд функцій

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)
);
Вступ до моделювання даних у Snowflake

Давайте потренуємось!

Вступ до моделювання даних у Snowflake

Preparing Video For Download...