Chapter 4. Micro-Partitions

Snowflake SE·2024년 12월 26일
0

Zero to Snowflake

목록 보기
7/21

1. 마이크로파티션 요약

  • 데이터가 저장되는 물리적 단위
    • 컬럼 포맷
    • 데이터 자동 압축
    • 약 16MB 단위
  • 자동 파티션
    • 수집 순서에 따라 자동으로 분할
    • DDL에 명시적인 파티션 정의 불필요
  • 각 마이크로 파티션에 대한 통계를 메타데이터에 저장
    • 마이크로 파티션이 생성될 때 자동 저장
    • 데이터 조회 성능 향상을 위한 정보
    • 테이블 레벨 : row count, table size, table version, file reference 등
    • 컬럼 레벨 : min, max, range value / distinct, null count

2. 마이크로파티션과 메타데이터

  • Immutable

    • 한번 만들어진 파일은 불변합니다.
    • 즉 데이터가 업데이트되더라도 기존 파일을 수정하는 것이 아니라 새로운 파일이 생성됩니다.
    • 이와 같은 물리 저장 구조로 MVCC(Multi-Version Concurrency Control) 데이터 읽기 isolation을 지원합니다.
      MVCC
  • Number of Rows

    • 하나의 마이크로 파티션에는 여러 데이터 행이 압축되어 저장됩니다.
    • 대량의 데이터를 요약, 집계하는 분석 쿼리에서는 이와 같이 여러 행의 데이터가 압축되어 하나의 파일로 저장되면 데이터를 조회할 때 Disk I/O를 줄일 수 있게 됩니다
      데이터압축
  • Metadata 자동 생성

    • 마이크로 파티션이 생성될 때 자동으로 해당 마이크로 파티션의 통계 정보가 메타데이터로 저장
    • 메타데이터는 쿼리 실행 시 Partition Pruning에 사용
      메타데이터

3. 파티션 푸르닝(Pruning)

  • 데이터를 조회할 때 불필요한 마이크로 파티션을 조회할 대상에서 제거
  • 불필요한 파티션 스캔을 피해 Disk I/O를 절감
  • 동의어 : 파티션 제거 (Partition elimination), 조각 제거 (Fragment elimination)
    파티션푸르닝
profile
Snowflake Korea SE

0개의 댓글