데이터 애널리스트 업무 이해하기

[SNOWFLAKE/스노우플레이크 공부] Pro 자격증 준비에 필요한 토막 지식 정리_Materialized Views(물리적 뷰)

도쿄뱅 2024. 10. 14. 15:10
반응형
                [SNOWFLAKE/스노우플레이크 공부] Pro 자격증 준비에 필요한 토막 지식 정리_Materialized Views(물리적 뷰)

 


 

**Snowflake에서 "Materialized Views(물리적 뷰)"**는 기존 테이블에서 계산된 결과를 미리 저장해 두는 테이블과 유사한 객체예요. 이렇게 저장된 데이터를 이용하면 반복적인 쿼리를 빠르게 처리할 수 있어요. 일반 뷰와 달리, Materialized Views는 쿼리 결과를 실제로 저장해서 성능을 높이는 데 중점을 둡니다. 쉽게 설명해볼게요!

1. Materialized Views란?

  • **Materialized Views(물리적 뷰)**는 기존 테이블에서 특정 데이터를 미리 계산하고, 그 결과를 저장해두는 객체예요.
  • 일반적으로 뷰는 실시간으로 데이터를 가져와 보여주는 가상의 테이블이지만, Materialized View미리 계산된 결과를 실제로 저장해서, 쿼리 실행 시 더 빠르게 데이터를 제공할 수 있어요.
  • 비유하자면: **즉석에서 만드는 요리(일반 뷰)**와 **미리 만들어둔 반찬(물리적 뷰)**의 차이예요. 즉석 요리는 매번 새로 조리해야 하지만, 미리 만들어둔 반찬은 바로 꺼내서 먹을 수 있어 시간이 훨씬 절약되는 것처럼요!

2. Materialized Views와 일반 뷰의 차이

  • 일반 뷰:
    • 데이터를 실시간으로 조회하는 역할을 해요.
    • 매번 쿼리를 실행할 때 실제 테이블에서 데이터를 가져와 계산해요.
    • 예를 들어, "지난 주의 판매 데이터"라는 뷰를 만들면, 매번 조회할 때마다 계산해서 결과를 보여줘요.
  • Materialized Views:
    • 데이터를 미리 계산하고 저장해 둬요.
    • 쿼리를 실행할 때마다 저장된 결과를 사용해 데이터를 빠르게 가져올 수 있어요.
    • 예를 들어, "지난 주의 판매 데이터"라는 Materialized View를 만들면, 지난 주의 데이터를 미리 계산해 저장해두고, 조회할 때마다 그 결과를 사용해요.

3. Materialized Views의 동작 원리

  • 기본 테이블에서 데이터를 선택해 계산된 결과를 저장해 두는 것이에요.
  • 테이블에 변경 사항이 생기면, Materialized View도 업데이트되어 최신 데이터를 반영해요. (다만, 모든 변경이 즉시 반영되지는 않고, Snowflake가 관리하는 방식에 따라 업데이트가 진행돼요.)
  • 저장된 결과를 이용해 반복적인 쿼리를 빠르게 처리할 수 있어요.

4. Materialized Views의 장점

  • 빠른 쿼리 성능: 복잡한 쿼리를 매번 계산하지 않고, 미리 계산된 데이터를 조회하기 때문에 응답 속도가 빨라요.
  • 반복적인 데이터 분석: 자주 실행하는 분석 쿼리나 리포트 생성에서 더 효율적이에요. 예를 들어, 매일 같은 리포트를 생성해야 한다면, Materialized View를 사용해서 처리 시간을 줄일 수 있어요.
  • 비용 절감: 같은 쿼리를 여러 번 반복적으로 실행할 때, 매번 계산할 필요가 없으므로 컴퓨팅 리소스를 절약할 수 있어요.

5. Materialized Views의 단점

  • 저장 공간 사용: 데이터를 미리 저장해두기 때문에 저장 공간이 필요해요. 일반 뷰는 가상의 테이블이므로 저장 공간을 차지하지 않지만, Materialized View는 물리적으로 데이터를 저장해요.
  • 업데이트 비용: 테이블이 변경될 때마다 Materialized View를 업데이트해야 하므로, 데이터 변경이 잦은 경우 업데이트 비용이 발생할 수 있어요.
  • 실시간성 부족: 테이블의 변경이 즉시 반영되지 않을 수 있어요. 즉, 약간의 시간 차가 있을 수 있어 최신 데이터가 바로 반영되지 않을 수 있어요.

6. Materialized Views 사용 예시

  • 예시 1: 판매 데이터 분석:
    • 매일 아침마다 "어제의 판매 데이터를 기준으로 상위 10개 제품을 분석"해야 한다고 해볼게요.
    • 이를 매번 직접 쿼리한다면, 어제의 데이터를 전부 읽고 계산하는 시간이 걸려요.
    • 하지만, Materialized View를 사용해서 미리 계산된 결과를 저장해두면, 매번 빠르게 결과를 조회할 수 있어요.
  • 예시 2: 주간 보고서 생성:
    • "매주 월요일에 지난 한 주간의 데이터를 정리한 리포트"를 생성한다고 가정해보세요.
    • 매주 같은 데이터를 분석해야 한다면, Materialized View를 사용해 한 주간의 데이터를 미리 정리해두고, 조회할 때마다 빠르게 리포트를 생성할 수 있어요.

7. 비유로 쉽게 이해해보자면:

  • 일반 뷰레시피만 가지고 있는 요리사와 같아요. 요리사가 레시피대로 요리를 할 때마다 직접 만들기 때문에 시간이 걸려요.
  • Materialized View미리 요리해서 냉장고에 넣어둔 반찬과 같아요. 미리 만들어져 있으니 요리가 필요할 때마다 바로 꺼내서 먹을 수 있어 시간을 크게 줄일 수 있죠!

8. 정리하자면:

  • Materialized Views미리 계산된 데이터 결과를 저장해 둬서 빠르게 접근할 수 있게 해주는 Snowflake의 기능이에요.
  • 주로 반복적인 쿼리고정된 분석 데이터에 사용되어 성능을 향상시키고 시간을 절약해줘요.
  • 하지만, 저장 공간을 차지하고 업데이트 비용이 발생할 수 있으므로, 사용 시 목적과 데이터 변경 주기를 고려하는 것이 중요해요.

Materialized Views를 잘 활용하면 데이터 분석 성능을 크게 향상시킬 수 있어, 효율적인 데이터 관리에 매우 유용한 도구랍니다!

 


 [SNOWFLAKE/스노우플레이크 공부] Pro 자격증 준비에 필요한 토막 지식 정리_Materialized Views(물리적 뷰)

반응형