샤드 컬렉션 관리
중요
관리되는 샤드 컬렉션 UI 는 더 이상 사용되지 않습니다. MongoDB Ops Manager 7.0.0 에는 이 기능 이 포함되지 않습니다.
개요
샤딩 은 여러 머신에 데이터를 분산합니다. MongoDB 는 샤딩 을 사용하여 대규모 데이터 세트와 높은 처리량 작업의 배포를 지원 합니다. MongoDB Ops Manager 는 해당 클러스터에 샤딩된 클러스터 와 샤딩된 컬렉션 을 생성할 수 있습니다.
이 페이지에서는 샤딩된 컬렉션 MongoDB Ops Manager 내에서 문서 가 분산된 되는 방식을 결정하는 등 가 샤딩된 컬렉션을 관리 하는 방법에 대해 설명합니다.
샤딩에는 컬렉션 내에서 문서를 분할 하는 데 사용되는 샤드 키 를 정의하는 작업이 포함됩니다. 샤딩 에 대한 자세한 설명은 MongoDB 매뉴얼 을 참조하세요.
샤드 키는 컬렉션 내의 모든 문서에 존재하는 하나 이상의 인덱싱된 필드 로 구성됩니다. 복합 인덱스의 샤드 키는 복합 샤드 키라고 합니다. 각 컬렉션에는 하나의 샤드 키만 있을 수 있습니다. 컬렉션을 샤딩한 후에는 샤드 키를 변경할 수 없습니다. 샤드 클러스터는 샤드 및 비샤드 컬렉션을 모두 지원할 수 있습니다. 샤드 키 선택에 대한 권장사항은 MongoDB 매뉴얼 을 참조하세요.
샤드 클러스터는 샤드 컬렉션의 문서를 클러스터의 샤드에 균등하게 배포하려고 시도합니다. 샤딩 구역을 사용하여 컬렉션 내 문서 배포를 관리할 수 있습니다.
구역 샤딩 은 컬렉션의 샤드 키 값 범위를 구역 이라는 클러스터 의 하나 이상의 샤드에 연결합니다. MongoDB 는 최종적으로 지정된 범위 내의 문서를 관련 구역 으로 라우팅합니다. 이를 통해 타겟팅된 데이터 배포가 가능합니다. MongoDB Ops Manager 는 구역 샤딩과 기본값 샤딩 을 모두 지원합니다. 구역 샤딩 에 대한 자세한 설명은 MongoDB 매뉴얼 을 참조하세요.
참고
태그 인식 샤딩 과 구역 샤딩 은 서로 바꿔 사용할 수 있습니다. 태그 인식 샤딩 은 MongoDB 3.4 출시하다 와 함께 구역 샤딩으로 전환됩니다.
다음 절차에서는 MongoDB Ops Manager 가 수행할 수 있는 방법을 설명합니다.
샤드 컬렉션 관리
샤딩된 클러스터 밸런서 실행 시기 변경
새 샤딩된 컬렉션 만들기
MongoDB Ops Manager로 샤딩된 컬렉션 가져오기
샤드 클러스터의 구역 정의
샤드 컬렉션의 범위 정의
각 절차에서는 Deployment 버튼을 클릭하여 Deployment 페이지를 먼저 표시했다고 가정합니다.
샤드 컬렉션 관리 활성화
MongoDB Ops Manager 를 사용하여 샤딩된 컬렉션을 관리 수 있습니다. MongoDB Ops Manager 가 샤딩된 컬렉션을 관리 하도록 하려면 먼저 MongoDB Ops Manager 에서 가져오기 프로세스 를 실행 해야 합니다. 이렇게 하면 컬렉션의 구성이 실수로 재정의되는 것을 방지할 수 있습니다.
가져오기에 실패한 문제를 해결합니다. (선택 사항)
샤딩된 컬렉션을 가져올 때 발생할 수 있는 몇 가지 오류가 있습니다.
- 겹치는 범위
MongoDB Ops Manager 는 중복 정의된 범위를 지원 하지 않습니다.
예시
복합 샤드 키 는 겹치지 않는 범위를 가진 것처럼 보일 수 있습니다. 이 예시 에서는 차이점을 설명합니다.
단순 복합 샤드 키 는 1 ~ 10 사이의 값을 가진 두 개의 정수로 구성됩니다. 각 청크 가 약 64 MB인 컬렉션 의 청크 범위는 다음과 같습니다.
min최대[$min, $min]
[1, 8]
[1,8]
[3,1]
[3,1]
[5,2]
[5,2]
[5,10]
[5,10]
[7,3]
[7,3]
[$max,$max]
범위는 각 값이 개별적으로 아니라 결합된 (또는 복합) 두 값을 기반으로 합니다. 두 번째 값은 각 청크에서 위아래로 이동하지만 조합은 항상 최소값에서 최대값으로 증가합니다.
mongosh
를 사용하여 데이터베이스 에서 직접 이 문제를 해결할 수 있습니다.범위가 겹칠 가능성이 있는지 검토합니다.
- 데이터 유형 불일치
각 범위에 대해 MongoDB Ops Manager는 샤드 키에 있는 각 필드의 최소값과 최대값이 동일한 BSON 데이터 유형이어야 합니다. 범위의 복합 샤드 키는 키의 각 필드에 대해 다른 BSON types를 사용할 수 있습니다. MongoDB Ops Manager는 샤딩된 컬렉션을 가져올 때와 범위가 생성될 때 이를 확인합니다.
참고
Min 키와 Max 키는 서로 다른 데이터 유형이며 범위 에서 BSON 데이터 유형을 혼합하지 않는 유일한 예외입니다.
mongosh
를 사용하여 데이터베이스 에서 직접 이 문제를 해결할 수 있습니다.- Data type invalid
범위 의 최소값과 최대값은 8개의 BSON 데이터 유형만 사용할 수 있습니다.
문자열
Integer
Double
Long
날짜
타임스탬프
ObjectId
MinKey / MaxKey
mongosh
를 사용하여 데이터베이스 에서 직접 이 문제를 해결할 수 있습니다.
샤드 클러스터 밸런서 실행 시기 변경
MongoDB Ops Manager를 사용하여 샤드 클러스터 가 샤드 간에 데이터를 분산하는 시기를 설정할 수 있습니다.
각 샤딩된 클러스터 에는 각 샤드 전체에 청크가 고르게 분산 되도록 하는 밸런서 라는 프로세스 가 있습니다. 샤딩된 클러스터 에서 청크를 마이그레이션하면 성능에 영향 을 미칠 수 있습니다 . 밸런서 효율성 은 샤드 키 선택 에 따라 달라집니다. 밸런서 관리자 인터페이스를 사용하여 MongoDB Ops Manager Windows 밸런서를 실행 수 있는 특정 를 설정하다 합니다(예: 사용량이 적은 시간에 밸런싱 라운드를 예약하는 경우).
샤딩된 클러스터 의 밸런싱 창 을 변경하려는 경우:
밸런서가 실행되는 기간을 구성합니다.
밸런서 실행 시기를 변경하려면:
다음을 클릭합니다. Schedule the Balancer 오른쪽에 있습니다.
Start 상자에 창 24시간을 사용하기 시작해야 하는 시간을 입력합니다.
Stop 상자에 시간 24을 사용하여 창 을 종료해야 하는 시간을 입력합니다.
Save를 클릭합니다.
참고
Start 및 Stop 의 값은 00:00
~ 23:59
사이일 수 있지만 Stop 는 Start 이전의 값일 수 있습니다. Stop 가 Start 보다 이른 경우 Stop 은 다음 날에 있는 것으로 처리됩니다.
예시
마이그레이션 창 을 오후 11:00 ~ 오전 2:00 사이로 설정하다 하려면 다음 날 Start 를 23:00
로 설정하고 Stop 을 02:00
로 설정합니다.
새 샤드 컬렉션 만들기
MongoDB Ops Manager 를 사용하여 새 샤딩된 을 생성할 수 있습니다.
중요
샤드 키 선택한 필드 가 인덱싱되지 않은 경우 자동화는 포그라운드에 샤드 키 인덱스 를 생성합니다. 이 작업은 프로덕션 워크로드에 잠재적으로 영향 수 있습니다. 전경 인덱스 빌드에 대한 자세한 내용 은 채워진 컬렉션에 대한 인덱스 빌드 작업을 참조하세요.
는 샤드 키 를MongoDB Ops Manager 포함하는 복합 인덱스 를 지원 하지 않습니다. 샤드 키 의 복합 인덱스 에 학습 보려면 샤드 키 인덱스를 참조하세요.
샤드 키의 이름을 필드 에 Shard Key 1 입력합니다.
샤드 키에는 상호 배타적인 두 가지 옵션이 있습니다.
해시 샤드 키 를 사용하려면 hashed 을(를) 선택합니다. Advanced Settings 를 확장하여 선택적으로 컬렉션 의 문서 배포를 최적화할 수 있습니다. 최적화를 위해 다음을 수행할 수 있습니다.
컬렉션 에 정의된 구역 및 구역 범위를 기반으로 비어 있거나 존재하지 않는 컬렉션 에 대해 초기 청크 생성 및 배포를 수행하려면
presplitHashedZones
확인란을 선택합니다.해시 샤드 키로 빈 컬렉션을 샤딩할 때 처음에 생성할 청크의 최소 개수를 지정합니다.
2
청크를 권장하지만 샤드당 최대8192
개까지 지정할 수 있습니다. 이 설정은 샤드 컬렉션에 대한 MongoDBnumInitialChunks
설정에 해당합니다.
이러한 옵션에 학습 보려면 sh.shardCollection()을 참조하세요.
고유한 키 이름을 사용하려면 Enforce Unique Key 을(를) 선택합니다.
샤드 키는 고유 하고 해시 될 수 없습니다.
복합 샤드 키 를 생성하려면 을(를)+ add another field 클릭합니다.
복합 샤드 키 에서 최대 하나의 키를 해시할 수 있습니다.
고유한 키 이름을 사용하려면 Enforce Unique Key 을(를) 선택합니다.
복합 샤드 키는 3개 이상의 키를 포함할 수 없습니다.
중요
복합 샤드 키 해싱은 MongoDB 버전 4.4 부터 지원됩니다. 복합 샤드 키 를 해시하고 FCV 4.2 로 다운그레이드하려면 먼저 해시 된 키를 사용하여 샤딩된 컬렉션 을 삭제해야 합니다.
Set Up Ranges 을 클릭하여 샤드를 구역 합니다. (선택 사항)
이 컬렉션에서 구역 샤딩을 사용하려면 범위를 사용하여 컬렉션을 샤딩하는 방법 정의 아래의 단계를 따르세요.
구역 샤딩 구성
참고
샤딩된 컬렉션에 구역 샤딩 을 사용하려는 경우 이 섹션의 다음 두 절차를 따르세요. 그렇지 않으면 이 섹션을 건너뛸 수 있습니다.
샤드를 구역으로 그룹화
구역은 하나 이상의 샤드로 구성된 명명된 프로젝트 입니다. 하나 이상의 구역을 생성한 후 범위 샤드 키 값과 해당 문서를 구역 에 할당할 수 있습니다. MongoDB 는 최종적으로 지정된 범위 내의 문서를 관련 구역 으로 라우팅합니다. 각 구역 에는 여러 범위와 여러 샤드가 포함될 수 있습니다. 각 샤드 는 둘 이상의 구역 에 속할 수 있습니다. 각 샤드 는 이름 오른쪽에 Deployment 아래에 해당 구역 을 표시합니다.
필드 에 이름을 Zone Name 입력합니다.
범위를 사용하여 컬렉션을 샤딩하는 방법 정의
범위는 샤드 키의 각 필드에 대한 최소값과 최대값을 지정합니다. 정의된 각 범위는 단일 구역에 연결됩니다. MongoDB는 최종적으로 지정된 범위 내의 문서를 관련 영역으로 라우팅합니다. 최소값은 샤드 키 값의 포괄적 하한입니다. 최대값은 샤드 키 값의 배타적 상한입니다. 범위는 하나의 구역에만 속할 수 있지만 구역은 여러 범위를 가질 수 있습니다.
밸런서 가 범위를 원하는 구역으로 이동하면 구성된 구역 및 범위를 기반으로 문서가 라우팅됩니다. 이 문제가 발생하면 범위 내의 문서는 관련 구역으로 라우팅되고 범위 외부의 문서는 클러스터의 모든 샤드로 라우팅될 수 있습니다.
각 샤드 키 에 대해 최소값과 최대값을 입력하고 관련 구역 을 선택합니다.
복합 샤드 키는 구성 요소 샤드 키 하나 범위 를 갖지만 함께 사용하면 하나의 구역 에만 연결됩니다.
참고
샤드 키가 해시 필드가 있는 복합 샤드 키인 경우 해시 필드의 유효한 범위 값 유형은 다음과 같습니다.
NumberLong
minKey
maxKey
범위의 최소값은 포괄적이고 최대값은 제외됩니다.
예시
다음 두 범위는 겹치지 않습니다.
min | 최대 | 영역 |
---|---|---|
1 | 10 | a |
10 | 20 | B |
참고
Min 및 Max 은 절대값으로, 특정 값을 명시적으로 나열하지 않은 모든 범위 의 절대 최소값과 최대값입니다.
각 범위 는 단일 구역 에만 연결할 수 있습니다. 둘 이상의 구역 에 동일한 범위 를 할당할 수 없습니다.
설정하다 다른 범위 가 + add another range있는 경우 를 클릭합니다.
지정된 컬렉션 에 대해 샤드 키 범위를 추가할 수 있습니다.
이러한 방식으로 다른 구역에 동일한 범위를 할당할 수 없습니다.
샤드 컬렉션 관리 비활성화
Unmanage를 클릭합니다.
중요
샤딩된 컬렉션 이 관리되지 않는 경우 샤딩된 컬렉션과 구역은 삭제 되지 않습니다 . 이러한 컬렉션과 구역은 더 이상 MongoDB Ops Manager 인터페이스에서 managed 할 수 없습니다.