728x90
반응형
SMALL
파티셔닝 방식
- 정의 : 테이블 또는 인덱스 등을 나누어 둔 단위
- 장점
- 데이터 엑세스 범위를 줄여 성능향상
- 파티션별로 데이터가 분산되어 디스크 성능향상
- 파티션별 백업 및 복구 속도 향상
- 시스템 장애시 데이터 손상정도 최소화
- 단점
- 하나의 테이블을 세분화하여 관리하므로 관리비용 증가
- 테이블간 조인에 대한 비용증가
1) 범위 분할 (Range)
- 개념: 값의 구간(예: 날짜·숫자, 2000년대 2010년대 등)로 파티션 나눔
- 강점: 파티션 프루닝 쉽고, 월별/분기별 롤링 관리가 간단
- 주의: 특정 구간에 데이터 몰리면 스큐 가능
- 언제? 로그/주문처럼 시간 축으로 자르는 데이터
2) 목록 분할 (List)
- 개념: 미리 정한 값 집합(예: 국가코드, 카테고리)별로 분할
- 강점: 카테고리성 필터에 프루닝 강력
- 주의: 새로운 값이 생기면 파티션 추가 필요
- 언제? region IN ('KR','US') 같은 명시 집합 조건이 잦을 때
3) 해시 분할 (Hash)
- 개념: 키의 해시값으로 균등 분배
- 강점: 부하 균형에 유리, 대테이블/조인 많은 MPP에 적합
- 주의: 범위 프루닝은 어려움, 키 선택이 매우 중요
- 언제? user_id처럼 높은 카디널리티 키로 균등 분산이 필요할 때
4) 합성 분할 (Composite/Hybrid)
- 개념: 2단계 분할(예: 범위 → 해시)로 장점 결합
- 강점: 기간 프루닝 + 균등 분산 둘 다 확보
- 주의: 설계·운영 복잡, 파티션 수 관리 필요
- 언제? 시간 기반 대용량 + 사용자 기반 균등 분산 동시에 필요한 환경
5) 라운드 로빈 분할 (Round-robin)
- 개념: 키와 무관하게 순환 배치
- 강점: 설정 간단, 로딩 빠름, 기본적으로 균등 분산
- 주의: 프루닝 불가, 조인 시 재분배(Shuffle) 많이 발생
- 언제? 스테이징/임시 테이블, 빠른 적재가 우선일 때
| 방식 | 개념 | 장점 | 단점/주의 | 언제 쓰나 |
| 범위 분할 | 값의 구간으로 나눔 (날짜·숫자 범위) |
프루닝 쉬움, 롤링 파티션 관리 용이 | 구간 불균형(스큐) 가능 | 날짜 기반 로그/주문, 월별/분기별 관리 |
| 목록 분할 | 지정한 값 집합으로 나눔 | 카테고리성 데이터에 직관적 | 값 추가/변경 시 관리 필요 | 국가/지역/라인업별 조회 |
| 해시 분할 | 해시로 균등 분배 | 부하 균형에 강함, 큰 테이블에 적합 | 범위 프루닝 어려움, 키 선택 중요 | 조인 많은 MPP, 균등 분산 우선 |
| 합성 분할 | 2단계 분할 (범위→해시 등) |
양쪽 장점 결합(프루닝+균등화) | 설계·운영 복잡 | 기간+사용자 균등 분산 |
| 라운드 로빈 | 순환 배치(키 무관) | 설정 간단, 균등 배치 | 프루닝 불가, 조인 시 재분배 多 | 임시/스테이징, 로딩속도 우선 |
728x90
반응형
LIST