Data Vault

Введение в моделирование данных в Snowflake

Nuno Rocha

Director of Engineering

Введение в модель Data Vault

  • Модель Data Vault: Методология моделирования для отслеживания исторических данных, основанная на хабах, связях и спутниках.

Data vault model

Введение в моделирование данных в Snowflake

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

  • Хабы: Представляют уникальные бизнес-концепции с помощью единственного бизнес-ключа.

Data vault model: hubs

Введение в моделирование данных в Snowflake

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

  • Связи: Фиксируют отношения и взаимодействия между хабами.

Data vault model: Links

Введение в моделирование данных в Snowflake

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

  • Спутники: Хранят описательные и исторические сведения, связанные с хабами и связями.

Data vault model: Satellites

Введение в моделирование данных в Snowflake

Создание хабов

College data vault hubs

Введение в моделирование данных в 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

Создание связей

College data vault links

Введение в моделирование данных в 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)

  • Создайте новую сущность связи offerings:
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

Создание спутников

College data vault satellites

Введение в моделирование данных в 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...