적합한 접근 방식 선택

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

Nuno Rocha

Director of Engineering

모델링 기법별 활용 사례

엔터티-관계(ER) 모델의 활용 사례

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

모델링 기법별 활용 사례 (1)

차원 모델의 활용 사례

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

모델링 기법별 활용 사례 (2)

데이터 볼트 모델링의 활용 사례

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

기술적 고려 사항

ER 모델의 장단점

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

기술적 고려 사항 (1)

차원 모델의 장단점

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

기술적 고려 사항 (2)

데이터 볼트의 장단점

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

데이터 모델 실전

벤다이어그램의 모델

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

데이터 모델 실전 (1)

대학 데이터가 벤다이어그램 모델에 매핑됨

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

모델에서 데이터 조회

  • 허브 엔터티와 해당 위성을 참조하여 학생의 상세 데이터를 조회합니다:
SELECT
    hs.student_key,
    ss.student_name
FROM hub_students AS hs
    JOIN sat_student AS ss ON hs.student_key = ss.student_key;
Snowflake로 시작하는 데이터 모델링

모델에서 데이터 조회 (1)

  • LEFT JOIN ON: 키를 기준으로 왼쪽 엔터티의 모든 행과 오른쪽 테이블의 일치 행을 결합하는 SQL 절
SELECT
    hs.student_key,
    ss.student_name
FROM hub_students AS hs
    JOIN sat_student AS ss ON hs.student_key = ss.student_key
    LEFT JOIN link_enrollment AS le ON hs.student_key = le.student_key
Snowflake로 시작하는 데이터 모델링

모델에서 데이터 조회 (2)

  • COUNT: 그룹 내 항목 수를 반환하는 집계 함수
  • GROUP BY: 동일 값 기준으로 데이터를 집계하는 절
SELECT
    hs.student_key,
    ss.student_name,
    COUNT(le.class_key) AS NumberOfEnrollments
FROM hub_students AS hs
    JOIN sat_student AS ss ON hs.student_key = ss.student_key
    LEFT JOIN link_enrollment AS le ON hs.student_key = le.student_key
GROUP BY hs.student_key, 
    ss.student_name
Snowflake로 시작하는 데이터 모델링

모델에서 데이터 조회 (3)

  • MAX: 한 속성의 값 집합에서 최댓값을 찾는 집계 함수
SELECT
    hs.student_key,
    ss.student_name,
    COUNT(le.class_key) AS NumberOfEnrollments
    MAX(sc.load_date) AS MostRecentEnrollmentDate
FROM hub_students hs
    JOIN sat_student ss ON hs.student_key = ss.student_key
    LEFT JOIN link_enrollment le ON hs.student_key = le.student_key
    LEFT JOIN sat_class sc ON le.class_key = sc.class_key
GROUP BY hs.student_key, 
    ss.student_name;
Snowflake로 시작하는 데이터 모델링

함수 개요

  • SELECT FROM: 엔터티에서 열을 가져오는 명령
  • JOIN ON: 관련 속성을 기준으로 엔터티 행을 결합
  • LEFT JOIN ON: 키 기준으로 왼쪽 엔터티의 모든 행과 오른쪽 테이블의 일치 행을 결합. 일치가 없으면 오른쪽 속성은 비어 있음
  • COUNT: 그룹 내 항목 수를 반환하는 집계 함수
  • MAX: 한 속성의 값 집합에서 최댓값을 찾는 집계 함수
  • GROUP BY: 동일 값 기준으로 데이터를 집계하는 절
Snowflake로 시작하는 데이터 모델링

함수 개요

SELECT column_name, 
    COUNT(another_column) AS alias_name,
    MAX(other_column) AS alias_name
FROM table_name table_alias
    -- 키 기준으로 엔터티 병합
    JOIN other_table AS other_alias 
    ON table_alias.FK = other_alias.PK
    LEFT JOIN another_table AS another_alias 
    ON table_alias.FK = other_alias.PK
-- 특정 열로 데이터 집계
GROUP BY column_name;
Snowflake로 시작하는 데이터 모델링

연습해 봅시다!

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

Preparing Video For Download...