반응형
Ⅰ. 대용량 처리를 위한 데이터베이스 파티셔닝, 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 |