2012-09-06 3 views
4

샤드가 3 개 있습니다Mongo에서 user_id를 사용하여 각 샤드에 데이터를 분할하는 방법은 무엇입니까?

샤시가 아닌 샤드 1에는 user_id = 1로, 샤드 2에는 user_id = 2, 샤드 3에는 user_id = 3이 포함됩니다.

+0

일반적으로 user_id를 shard하고 mongo가 범위를 배치 할 위치를 결정하는 것이 좋습니다. 다른 컬렉션을 포함하여 하나의 샤드에 user_id에 대한 모든 데이터를 포함하려고합니까? 아니면 그냥 "사용자"컬렉션을위한 것입니까? – Sammaye

+0

두 개의 모음이 있는데, 하나는 "사용자"이고 다른 하나는 "항목"입니다. 모든 사용자는 많은 항목을 가질 수 있습니다. 그래서, 나는 아이템 컬렉션을 user_id에 의해 각 조각으로 나누고 싶습니다. Shard1에는 user_id = 1에 속하는 항목 만 포함됩니다. Shard2는 user_id = 2에 속하는 항목 만 포함합니다. Shard3에는 user_id = 3에 속한 항목 만 포함됩니다. –

+0

수동으로 청크를 할당하는 데 익숙하지 않지만 migrate를 사용하여 작업 수행 : http://docs.mongodb.org/manual/administration/sharding/#migrating-chunks 및 사전 분할 http://docs.mongodb.org/manual/administration/sharding/#create-chunks- 사전 분할? – Sammaye

답변

2

당신은 수동 분할 및 샤딩 경로를 이동하고 균형을 해제하지만, 더 확장 가능한 솔루션 2.2의 새로운 shard tagging 기능을 사용해있을 수

크리스티나의 example 수집 분포를 제어하는 ​​방법을 보여주기위한 것입니다 특정 샤드에 대한 지역성을 보장하기 위해 두 컬렉션의 특정 사용자 범위에 대해 태그 청크를 말하면됩니다.

당신은 여전히 ​​어떤 식 으로든 이것을 직접 관리해야하지만 적어도 청크 관리 및 마이그레이션 관점에서 부담을 덜어줍니다.

관련 문제