본문 바로가기
DBMS/Vertica

Segmentation and Partitioning

by yororing 2024. 6. 17.

00 개요

  • Vertica에서 테이블 생성 시 SEGMENTED BY랑 PARTITION BY 둘 다 사용하는데, 둘다 데이터를 분산하는 것인데 어떻게 다른 것인지 알아보기 위해 정리

01 Partitioning and Segmentation (파티셔닝과 세그멘테이션)

  • Vertica에서 partitioning과 segmentation은 데이터를 현지화 (localize data) 하는 데에 있어서 각각 다른 개념이고 목적이 다르다

1. Segmentation

  • Segmentation은 신속한 데이터 삭제 및 쿼리 성능 (data purges and query performance)을 위해 클러스터 노드들 사이에서 데이터를 정리하고 분산하는 것을 의미
  • Segmentation은 모든 노드들이 쿼리 실행에 참여할 수 있도록 하기 위해 여러 DB 노드들에 데이터를 평등하게 골고루 (evenly) 나누는 것을 목표로 함
  • segmentation 지정하기: CREATE PROJECTION 문의 hash segmentation 절에서 설정 가능

2. Partitioning

  • Partitioning은 분산된 컴퓨팅 (distributed computing)을 위해 각 노드 안에서 데이터가 어떻게 정리되어야 하는지 (how to organize data) 지정 
  • Node partition은 drop하고 싶은 데이터를 쉽게 식별할 수 있게 하고 disk 공간을 확보할 수 있게 함
  • partitioning 지정하기: CREATE TABLE문의 PARTITION BY절에서 설정 가능

참조

  1. https://docs.vertica.com/23.3.x/en/admin/partitioning-tables/partitioning-and-segmentation/
  2.  
  3.