데이터 볼트

Snowflake로 시작하는 데이터 모델링

Nuno Rocha

Director of Engineering

데이터 볼트 모델 소개

  • 데이터 볼트 모델: 허브, 링크, 위성을 사용하여 이력을 추적하는 모델링 기법입니다.

데이터 볼트 모델

Snowflake로 시작하는 데이터 모델링

데이터 볼트 구성 요소

  • 허브(Hubs): 단일 비즈니스 키로 고유한 비즈니스 개념을 표현합니다.

데이터 볼트 모델: 허브

Snowflake로 시작하는 데이터 모델링

데이터 볼트 구성 요소 (1)

  • 링크(Links): 허브 간 관계와 상호작용을 캡처합니다.

데이터 볼트 모델: 링크

Snowflake로 시작하는 데이터 모델링

데이터 볼트 구성 요소 (2)

  • 위성(Satellites): 허브와 링크의 설명 및 이력 정보를 저장합니다.

데이터 볼트 모델: 위성

Snowflake로 시작하는 데이터 모델링

허브 구축

대학 데이터 볼트 허브

Snowflake로 시작하는 데이터 모델링

허브 구축 (1)

  • AUTOINCREMENT: 각 새 행에 대해 고유하고 순차적으로 증가하는 숫자 값을 자동 생성하는 속성입니다.
CREATE OR REPLACE TABLE hub_students (
    student_key NUMBER(10,0) AUTOINCREMENT PRIMARY KEY
);
Snowflake로 시작하는 데이터 모델링

허브 구축 (2)

  • 자동 생성되는 고유 숫자 키와 허브의 개념 ID로 새 허브를 생성합니다:
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로 시작하는 데이터 모델링

링크 구축

대학 데이터 볼트 링크

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로 시작하는 데이터 모델링

위성 구축

대학 데이터 볼트 위성

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로 시작하는 데이터 모델링

용어 및 기능 요약

  • 데이터 볼트 모델: 허브, 링크, 위성을 사용하여 이력을 추적하는 모델링 기법입니다.
  • 허브(Hubs): 단일 비즈니스 키로 고유한 비즈니스 개념을 표현합니다.
  • 링크(Links): 허브 간 관계와 상호작용을 캡처합니다.
  • 위성(Satellites): 허브와 링크의 설명 및 이력 정보를 저장합니다.
  • 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로 시작하는 데이터 모델링

Ayo berlatih!

Snowflake로 시작하는 데이터 모델링

Preparing Video For Download...