문서 메뉴
문서 홈
/
MongoDB 매뉴얼
/ /

샤드 클러스터의 청크 분할

기본적으로 MongoDB는 청크 에 속한 데이터를 마이그레이션할 때만 잠재적으로 분할합니다. 그러나 기존 데이터를 사용하여 클러스터를 배포한 후처럼 클러스터의 데이터 양이 많고 청크 가 매우 적은 경우에는 청크를 수동으로 분할해야 할 수 있습니다.

청크를 수동으로 분할하려면 middle 또는 find 필드와 함께 split 명령을 사용합니다. mongosh 는 헬퍼 메서드 sh.splitFind()sh.splitAt() 을 제공합니다.

splitFind()는 이 쿼리와 일치하는 첫 번째 반환 문서가 포함된 청크를 동일한 크기의 청크 두 개로 분할합니다. 샤드 컬렉션의 전체 네임스페이스(예: '<database>.<collection>')를 splitFind()로 지정해야 합니다. splitFind()의 쿼리는 샤드 키를 사용할 필요가 없지만, 대부분의 경우에 샤드 키를 사용하는 것이 합리적입니다.

예제

다음 명령은 records 데이터베이스의 people 컬렉션에 있는 zipcode 필드에 대한 63109 값을 포함하는 청크를 분할합니다.

sh.splitFind( "records.people", { "zipcode": "63109" } )

splitAt()을 사용하여 청크를 둘로 분할하고, 쿼리된 문서를 새 청크의 하한으로 사용합니다:

예제

다음 명령은 records 데이터베이스의 people 컬렉션에 있는 zipcode 필드에 대한 63109 값이 포함된 청크를 분할합니다.

sh.splitAt( "records.people", { "zipcode": "63109" } )

참고

splitAt() : 청크를 반드시 동일한 크기의 두 개 청크로 분할하지는 않습니다. 분할은 해당 문서가 청크의 어디에 있는지에 관계없이 쿼리와 일치하는 문서 위치에서 발생합니다.

다음도 참조하세요.

돌아가기

샤드 클러스터에서 범위 만들기

다음

샤드 클러스터에서 청크 병합하기