Data Vault

Nhập môn Mô hình dữ liệu trong Snowflake

Nuno Rocha

Director of Engineering

Giới thiệu mô hình Data Vault

  • Mô hình Data Vault: Kỹ thuật mô hình hóa tập trung theo dõi lịch sử dữ liệu, gồm hub, link và satellite.

Mô hình Data Vault

Nhập môn Mô hình dữ liệu trong Snowflake

Thành phần của Data Vault

  • Hub: Đại diện các khái niệm nghiệp vụ duy nhất bằng một khóa nghiệp vụ đơn.

Mô hình Data Vault: hub

Nhập môn Mô hình dữ liệu trong Snowflake

Thành phần của Data Vault (1)

  • Link: Ghi nhận quan hệ và tương tác giữa các hub.

Mô hình Data Vault: Link

Nhập môn Mô hình dữ liệu trong Snowflake

Thành phần của Data Vault (2)

  • Satellite: Lưu thông tin mô tả và lịch sử liên quan đến hub và link.

Mô hình Data Vault: Satellite

Nhập môn Mô hình dữ liệu trong Snowflake

Xây dựng hub

Hub trong data vault của trường đại học

Nhập môn Mô hình dữ liệu trong Snowflake

Xây dựng hub (1)

  • AUTOINCREMENT: Thuộc tính tự động tạo giá trị số duy nhất, tăng dần cho mỗi hàng mới.
CREATE OR REPLACE TABLE hub_students (
    student_key NUMBER(10,0) AUTOINCREMENT PRIMARY KEY
);
Nhập môn Mô hình dữ liệu trong Snowflake

Xây dựng hub (2)

  • Tạo hub mới với khóa số duy nhất tự sinh và id khái niệm của hub:
CREATE OR REPLACE TABLE hub_students (
    student_key NUMBER(10,0) AUTOINCREMENT PRIMARY KEY,
    student_id NUMBER(10,0)
);
1 Tiếp theo, liệt kê khóa nghiệp vụ xác định từng khái niệm; student_id sẽ xác định từng sinh viên
Nhập môn Mô hình dữ liệu trong Snowflake

Xây dựng hub (3)

  • Thêm thuộc tính theo dõi lịch sử:
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)
);
Nhập môn Mô hình dữ liệu trong Snowflake

Xây dựng hub (4)

  • Tạo hub lớp học mới:
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)
);
  • Tạo hub trường học mới:
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)
);
Nhập môn Mô hình dữ liệu trong Snowflake

Xây dựng link

Liên kết trong data vault của trường đại học

Nhập môn Mô hình dữ liệu trong Snowflake

Xây dựng link (1)

  • Tạo thực thể link với khóa số duy nhất tự sinh:
CREATE OR REPLACE TABLE link_enrollments (
    link_key NUMBER(10,0) AUTOINCREMENT PRIMARY KEY
);
Nhập môn Mô hình dữ liệu trong Snowflake

Xây dựng link (2)

  • Thêm quan hệ tới các thực thể khác:
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)
);
Nhập môn Mô hình dữ liệu trong Snowflake

Xây dựng link (3)

  • Thêm thuộc tính theo dõi lịch sử:
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)
);
Nhập môn Mô hình dữ liệu trong Snowflake

Xây dựng link (4)

  • Tạo thực thể link offerings mới:
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)
);
Nhập môn Mô hình dữ liệu trong Snowflake

Xây dựng satellite

Satellite trong data vault của trường đại học

Nhập môn Mô hình dữ liệu trong Snowflake

Xây dựng satellite (1)

  • Tạo thực thể satellite mới liệt kê các thuộc tính của khái niệm:
CREATE OR REPLACE TABLE sat_student (
    name VARCHAR(255),
    email VARCHAR(255)
);
Nhập môn Mô hình dữ liệu trong Snowflake

Xây dựng satellite (2)

  • Thêm thuộc tính theo dõi lịch sử:
CREATE OR REPLACE TABLE sat_student (
    name VARCHAR(255),
    email VARCHAR(255),
    load_date TIMESTAMP,
    record_source VARCHAR(255)
);
Nhập môn Mô hình dữ liệu trong Snowflake

Xây dựng satellite (3)

  • Thêm liên kết giữa satellite và hub tương ứng:
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)
);
Nhập môn Mô hình dữ liệu trong Snowflake

Xây dựng satellite (4)

  • Tạo satellite lớp học mới:
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)
);
  • Tạo satellite trường học mới:
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)
);
Nhập môn Mô hình dữ liệu trong Snowflake

Tổng quan thuật ngữ và chức năng

  • Mô hình Data Vault: Kỹ thuật mô hình hóa tập trung theo dõi lịch sử dữ liệu, gồm hub, link và satellite.
  • Hub: Đại diện các khái niệm nghiệp vụ duy nhất bằng một khóa nghiệp vụ đơn.
  • Link: Ghi nhận quan hệ và tương tác giữa các hub.
  • Satellite: Lưu thông tin mô tả và lịch sử liên quan đến hub và link.
  • CREATE OR REPLACE TABLE: Lệnh SQL để tạo hoặc thay thế cấu trúc bảng.
  • PRIMARY KEY: Mệnh đề SQL xác định cột làm định danh duy nhất.
  • AUTOINCREMENT: Thuộc tính tự động tạo giá trị số duy nhất, tăng dần cho mỗi hàng mới.
  • FOREIGN KEY (...) REFERENCES (...): Mệnh đề SQL tạo liên kết giữa hai bảng.
Nhập môn Mô hình dữ liệu trong Snowflake

Tổng quan chức năng

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)
);
Nhập môn Mô hình dữ liệu trong Snowflake

Ayo berlatih!

Nhập môn Mô hình dữ liệu trong Snowflake

Preparing Video For Download...