Snowflake View

CHAN LIM·2024년 1월 3일
0

Snowflake

목록 보기
2/18
post-thumbnail

View?

하나 이상의 기본 Table이나 다른 View를 이용하여 생성되는 가상 테이블

  • 저장된 쿼리 정의

  • View는 데이터를 저장하지 않는다.

    • 즉, 디스크 저장 공간에 할당이 이루어지지 않는다.
  • 전체 데이터 중에서 일부만 접근할 수 있다.

  • View에 대한 수정 결과는 뷰를 정의한 기본 테이블에 적용된다.

  • View를 정의한 기본 테이블에서 정의된 무결성 제약조건은 그대로 유지된다.


장점

  • View는 더욱 모듈화된 코드를 작성할 수 있게 한다.

    • 즉, 복잡한 부분들과 거대한 쿼리들을 View로 단축할 수 있다.
  • Table의 특정 부분 집합에만 접근할 수 있도록 한다.

    Example

    • 하나의 테이블에서 열들의 특정 부분 집합을 어떤 뷰에 주고
      또 다른 부분 집합은 다른 사용자에게 줄 수도 있다.

한계

  • 읽기 전용
    • 저장된 쿼리이기 때문이다.
    • 삽입, 삭제, 갱신 연산에 제한이 있다.

사용법

생성

CREATE view <이름> as select * from <테이블> <조건>;

삭제

DROP view <이름>;

Materialized View

View인데,
자체 데이터를 소유하고 있는 View

  • 성능 및 효율성 향상을 위해
    쿼리 결과를 주기적으로 Cache하는 즉,
    값을 미리 저장해놓는 ‘PreComputed View’라고 한다.
  • 백그라운드 프로세스를 통해
    데이터가 최신 상태이고 Table과 일치하는지 확인한다.

장점

  • 일반 View에 비해, 성능 향상

    • 결과가 미리 계산되기 때문에 Materialized View를 쿼리하는 것이 일반 View의 기본 테이블에 대해 쿼리를 실행하는 것보다 빠르다.
  • 자동으로 유지 관리한다.


사용법

생성

CREATE Materialized view <이름> as select * from <테이블> <조건>;

삭제

DROP Materialized view <이름>;

한계

  • 단일 테이블에 대해서만 쿼리를 할 수 있다.

  • 자동 유지 관리로 인해 Credit이 소비될 수 있다.

  • Join 연산을 사용할 수 없다.

  • View와 UDF를 사용할 수 없다.

  • 집계 함수(HAVING, ORDER BY, LIMIT, WINDOW FUNCTIONS)
    사용할 수 없다.


View와 Materialized View 비교

Materialized View를 사용할 때,

  • View의 쿼리 결과가 자주 변화하지 않을 때,

  • View의 결과가 사용될 때,

  • 쿼리가 많은 리소스를 소비할 때


(General) View를 사용할 때,

  • View의 쿼리 결과가 자주 변화할 때,

  • View의 결과가 사용되지 않을 때,

  • 쿼리가 많은 리소스를 소비하지 않을 때

    • 즉, 자주 재실행하지 않을 때

출처

View 개념 간단히
The RED : Snowflake를 활용한 클라우드 데이터 엔지니어링

profile
클라우드, 데이터, DevOps 엔지니어 지향 || 글보단 사진 지향

0개의 댓글