Zettelkasten

Parquet은 column based format으로

·수정 2026.04.23·수정 3

열 지향 저장 포맷

구조

  • 파일: Parquet는 여러 Row Group으로 구성됨
  • Row Group
    • 행단위로 데이터를 묶은 그룹
    • 각 Row Group은 Column Chunk로 나뉨
    • 메타 데이터에 Row Group 범위 정보와 통계가 저장됨
  • Column Chunk
    • 하나의 열에 해당하는 데이터를 저장함
    • 동일한 열의 데이터만 저장되므로 압축과 접근 효율이 좋아짐
  • Page
    • Column Chunk는 더 작은 단위인 Page로 나뉨
    • 데이터 페이지와 메타데이터 페이지가 포함됨
    • Page Header와 Page Body로 나뉨
    • Parquet 버전에 따라 두가지 형식이 있음
      • v1: Definition Levels, Repetition Levels, Encoded Values를 순서대로 저장
      • v2: Definition Levels, Repetition Levels를 압축된 상태로 저장
    • Repetition Levels
      • 중첩 구조에서 데이터가 어떻게 반복되거나 중첩되어 있는지 나타냄
      • 중첩된 구조에서 반복 요소가 몇번째 반복에 해당하는지 표현

쿼리 성능 최적화

  • Predicate Pushdown: row group의 메타데이터를 읽고 필터 조건에 해당하지 않는 데이터는 읽지 않음
  • Column Prunning: 필요한 열만 로드함