mongo 클러스터가 모두 존재한다는 전제하에 설명한다.(mongo router, mongo configuration, mongo nodes 들이 있다는 전제)
1. mongo master 혹은 mongo configuration 에서
use config |
2. mongo master 에서
sh.enableSharding("<샤딩시킬 데이터베이스 이름>") |
*참고로 뒤에 {_id:1} 말고 hash 기법 등으로 바꿔도 된다. (참고)
이후에 mongoimport 를 통해 위에서 적용한 데이터베이스.컬렉션 에 저장한다.
만약 다양한 청크 사이즈로 데이터를 넣고 싶다면
데이터를 mongoimport 하여 넣기 전에 1, 2 번을 다시 수행한다.
청크 상태 확인하는 법
mongo master 에서
sh.status() |
혹은
use <샤딩시킨 데이터베이스 이름> |
청크 사이즈를, 예를 들면 8mb로 바꾼 상태에서 데이터를 넣었다고 해서 곧바로 청크들이 mongo nodes에 8mb씩 나눠 들어가진 않는다.
왜냐하면 먼저 데이터를 migration 할 때, 복사본을 만들고 그것을 다른 노드로 보내는 방식으로 migration 하는데 이 때 중복된 데이터가 발생하기 때문이고,
두번째로 청크 하나에 8mb 데이터를 꽉꽉 눌러담지 않고 그의 반인 4mb로 널널하게 담는 mongoDB의 시스템 때문이다.
참고 :
https://docs.mongodb.com/manual/core/sharding-data-partitioning/#chunk-migration
https://docs.mongodb.com/manual/core/sharding-balancer-administration/
'MongoDB' 카테고리의 다른 글
[MongoDB] collection 이름에 " . " dot 이 들어가는 경우 (0) | 2019.07.09 |
---|---|
[MongoDB] hashed, ranged 샤딩 하는 방법 (0) | 2019.07.09 |
[MongoDB] YCSB 를 이용한 벤치마킹 튜토리얼 링크 (0) | 2019.05.10 |
[MongoDB] mongo java driver 에서 aggregate 사용하기 (0) | 2019.02.28 |
[MongoDB] sudo service mongod start 가 실행되지 않을 때 (0) | 2019.01.29 |