IT 기술/DB

데이터베이스 샤딩

gooooooood 2024. 10. 2. 09:58
반응형

Ⅰ. 대용량 처리를 위한 데이터베이스 파티셔닝, Sharding의 개요

정의 물리적으로 다른 데이터베이스에 Shard 파티션 생성하여 데이터를 분할하여 저장 관리
특징 성능 개선 큰 데이터를 분산 저장하여 개별 테이블은 각 샤드에서 더 빠른 작업 지원
신뢰성 개선 한 샤드가 실패하더라도 다른 샤드가 데이터 서비스 제공
위치 추상화 애플리케이션 서버에서 데이터가 어떤 데이터베이스에 위치한지 알 필요 없음

 

Ⅱ. 샤딩 데이터베이스 분할 방법 및 가이드라인

가. 샤딩 데이터베이스 분할 방법

방법 설명 특징
Modular Sharding PK를 모듈러 연산한 결과로 DB를 라우팅하는 방식 - 데이터가 균일하게 분산
- DB 추가 증설시 기존 데이터 재정렬
Range Sharding PK의 범위를 기준으로 DB를 특정하는 방식 - 증실시 재정렬 비용 없음
- 데이터가 불균등하게 분산(일부 쏠림)
Directory Based Sharding 별도의 조회 테이블을 사용하여 샤딩하는 방식 - 샤드 동적 추가 용이
- 쿼리시 조회 테이블 참조로 오버헤드

 

나. 샤딩 데이터베이스 적용 가이드라인

구분 가이드라인 내용
DB 설계
가이드라인
데이터 재분배 서비스 정지 없이 스케일업 가능해야 함
조인 샤딩 - 데이터베이스 간 조인 불가능으로 역정규화 고려 필요
파티션 샤드 해쉬 함수 설계 중요
데이터 작게 테이블의 단위를 가능한 작게 만들어야 함
응용 설계
가이드라인
트랜잭션 글로벌 트랜잭션 사용시 샤드 DB간 트랜잭션 가능
Global Unique Key DBMS auto-increment 사용시 key 중복 문제로 어플리케이션 레벨에서 생성 필요

 

Ⅲ. 샤딩과 파티셔닝 비교

구분 파티셔닝 샤딩
개념 하나의 데이터베이스 서버에 큰 데이터를 여러 테이블로 분산 저장 여러 데이터베이스 서버에 데이터를 분산 저장
종류 리스트 파티셔닝, 레인지 파티셔닝, 해시 파티셔닝 모듈러 샤딩, 레인지 샤딩, 디렉토리 샤딩
서버 단일 DBMS 다중 DBMS
확장 형태 수직, 수평 확장 수평 확장
구현 데이터베이스 레벨 애플리케이션 레벨
조인 테이블 분산으로 조인 쉬움 여러 샤드에 걸친 조인 어려움

 

반응형

'IT 기술 > DB' 카테고리의 다른 글

데이터 메시  (0) 2024.10.02
데이터 품질 관리  (2) 2024.10.02
데이터 클렌징(Cleansing), 프로파일링(Profiling)  (0) 2024.10.02
분산 데이터베이스 투명성  (0) 2024.10.02
DBMS 병행 제어  (0) 2024.10.01