머티리얼라이즈드 뷰

데이터베이스 설계

Lis Sulmont

Curriculum Manager

두 가지 유형의 뷰

  • 비머티리얼라이즈드 뷰라고도 함
  • 지금까지 정의한 뷰
데이터베이스 설계

두 가지 유형의 뷰

  • 비머티리얼라이즈드 뷰라고도 함
  • 지금까지 정의한 뷰

머티리얼라이즈드 뷰

  • 물리적으로 저장됨
데이터베이스 설계

머티리얼라이즈드 뷰

  • 쿼리가 아닌 쿼리 결과를 저장
  • 머티리얼라이즈드 뷰 조회는 저장된 결과에 접근함
    • 비머티리얼라이즈드 뷰처럼 쿼리를 실행하는 것이 아님
  • 요청 또는 스케줄에 따라 새로 고침/재머티리얼라이즈드됨
데이터베이스 설계

머티리얼라이즈드 뷰 사용 시점

  • 오래 걸리는 쿼리
  • 기본 쿼리 결과가 자주 변하지 않음
  • 데이터 웨어하우스: OLAP은 쓰기 집약적이지 않음
    • 빈번한 쿼리의 계산 비용 절감
데이터베이스 설계

머티리얼라이즈드 뷰 구현

(PostgreSQL)

$$

CREATE MATERIALIZED VIEW my_mv AS SELECT * FROM existing_table;

$$

REFRESH MATERIALIZED VIEW my_mv;
데이터베이스 설계

의존성 관리

  • 머티리얼라이즈드 뷰는 다른 머티리얼라이즈드 뷰에 의존하는 경우가 많음
데이터베이스 설계

의존성 예시

$$ X와 Y 뷰의 의존성을 화살표로 나타낸 다이어그램

데이터베이스 설계

의존성 관리

  • 머티리얼라이즈드 뷰는 다른 머티리얼라이즈드 뷰에 의존하는 경우가 많음
  • 새로 고침 시 의존 체인이 생김
  • 모든 뷰를 동시에 새로 고치는 것은 비효율적임
데이터베이스 설계

의존성 관리 도구

  • 방향성 비순환 그래프(DAG)로 뷰 추적 $$ $$
  • 파이프라인 스케줄러 도구

방향성 비순환 그래프 예시

Airflow와 Luigi 로고

데이터베이스 설계

연습해 봅시다!

데이터베이스 설계

Preparing Video For Download...