일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- 확률
- 인공지능
- 빅데이타
- Deep learning
- nodeJS
- 몽고디비
- 빅 데이터
- openCV
- 데이터 과학
- 김양재
- 김양재 목사
- Artificial Intelligence
- 딥러닝
- Machine Learning
- c++
- 김양재 목사님
- 우리들교회
- R
- MongoDB
- Big Data
- node.js
- probability
- No SQL
- data science
- 빅데이터
- 통계
- Statistics
- WebGL
- 빅 데이타
- 주일설교
- Today
- Total
Scientific Computing & Data Science
[MongoDB] Sharding / Introduction 본문
by Geol Choi |
샤딩(Sharding)이란?
- 데이터의 스케일 아웃(Scale Out)을 하는 방법으로 여러 대의 머쉰을 통해 데이터를 분산하는 것을 의미한다.
- 즉, 데이터를 여러 그룹으로 쪼개어 이 그룹들을 각기 다른 머쉰에 저장하는 처리 방법이다.
- 파티셔닝(Partitioning)이라고도 한다.
- 늘어나는 데이터와 이에 대한 처리를 위해 더욱 강력하고 보다 큰 저장공간을 제공하는 다른 머쉰으로 교체하는 대신 여러 대의 머쉰을 추가하는 것이다.
MongoDB의 자동 샤딩
대부분의 데이터베이스 소프트웨어는 수동 샤딩 도구를 제공한다. 수동 샤딩의 경우 클러스터의 노드를 추가하거나 삭제 시 또는 데이터 분산 및 처리량 분산 등의 경우 관리에 어려움이 있을 수 있다.
MongoDB는 사용자의 이러한 부담을 줄여주기 위해 자동 샤딩 기능을 제공한다.
MongoDB에서의 샤딩에 기본 개념은 컬렉션을 더 작은 조각(Chunk)의 그룹으로 분해하고, 분해된 각 데이터 조각들에 대한 저장 및 처리는 각각의 샤드가 담당하게 된다. 역으로, 각 샤드에 분산된 데이터를 모두 모으면 전체 데이터 세트가 된다.
MongoDB를 이용하는 어플리케이션의 입장에서 어느 샤드에 어느 데이터가 저장되어 있는지 알 필요가 없다. 이 부분은 오직 MongoDB만이 알고 있으며, MongoDB의 mongos가 담당하고 있다. (이는 마치, 우리가 라디오를 켜기 위해 전자회로의 원리를 알 필요가 없는 것과 같다. 라디오를 켜기 위해 단지 우리는 라디오의 전원 버튼만 누를 줄 알면 된다!)
mongos는 샤드들에 대한 라우팅 역할을 하며 어떤 데이터가 어느 샤드에 있는지 알고 있으며 요청된 작업을 적절한 샤드에 연결시켜 준다.
다음 그림은 비-샤드(Non-shard) 개념과 샤드 개념을 설명하기 위한 그림이다.
[그림 1.] 비-샤드 방식에서의 Mongod와 Client 어플리케이션 간 관계.
[그림 2.] 샤드 방식에서의 Mongod와 Client 어플리케이션 간 관계.
샤딩을 해야하는 경우
- 현재 머쉰의 저장 공간이 모자라는 경우
- 단일 머쉰의 mongod를 활용할 때보다 데이터를 빠르게 처리해야 하는 경우
- 데이터 처리 성능을 향상하기 위해 인메모리 데이터를 늘려야 하는 경우
비-샤딩에서 필요할 경우 샤딩으로 전환할 수 있다.
'Data Science > MongoDB' 카테고리의 다른 글
[MongoDB] Sharding / Setting Up Sharding (1) | 2014.04.22 |
---|---|
[MongoDB] Sharding / Shard Keys (0) | 2014.04.13 |
[MongoDB] Replication / Replication with Authentication (0) | 2014.04.10 |
[MongoDB] Replication / Replication State & Local DB (0) | 2014.04.09 |
[MongoDB] Replication / Sync (0) | 2014.04.09 |