문서 메뉴

문서 홈애플리케이션 개발MongoDB 매뉴얼

맵 리듀스 및 샤드 컬렉션을 참조하세요.

이 페이지의 내용

  • 입력으로서의 샤드 collection
  • 출력으로서의 샤드 collection

참고

맵 리듀스의 대안으로서의 집계 파이프라인

MongoDB 5.0부터 맵 리듀스는 더 이상 사용되지 않습니다.

맵 리듀스 대안으로서의 애그리게이션 파이프라인 예시는 다음을 참조하세요.

맵 리듀스는 샤드 collection에 대한 작업을 입력과 출력 모두에서 지원합니다. 이 섹션에서는 샤드 collection과 관련된 mapReduce 의 동작에 대해 설명합니다.

그러나 버전 4.2부터 MongoDB는 새 collection을 생성 하기 위한 맵 리듀스 옵션 및 맵 리듀스를 위한 sharded 옵션 사용을 더 이상 지원하지 않습니다. 샤드 컬렉션으로 출력하려면 먼저 샤드 컬렉션을 생성합니다. 또한 MongoDB 4.2는 기존 샤드 collection 교체를 더 이상 지원하지 않습니다.

샤딩된 collection을 맵 리듀스 작업의 입력으로 사용하는 경우 mongos 는 job을 각 샤드에 병렬로 자동으로 디스패치합니다. 특별한 옵션은 필요하지 않습니다. mongos 은(는) 모든 샤드의 작업이 완료될 때까지 대기합니다.

mapReduce 에 대한 out 필드에 sharded 값이 있는 경우, MongoDB는 _id 필드를 샤드 키로 사용하여 출력 collection을 샤딩합니다.

참고

버전 4.2부터 MongoDB는 mapReduce/db.collection.mapReduce()에 대한 sharded 옵션 사용을 더 이상 지원하지 않습니다.

샤드 collection으로 출력하려면 다음을 수행합니다.

  • 출력 컬렉션이 존재하지 않는 경우 먼저 샤드 컬렉션을 생성합니다.

    버전 4.2부터 MongoDB는 맵 리듀스 옵션을 사용한 새 collection 생성 및 맵 리듀스에 sharded 옵션 사용을 더 이상 지원하지 않습니다. 따라서 샤드 컬렉션으로 출력하려면 먼저 샤드 컬렉션을 만들어야 합니다.

    샤드 컬렉션을 먼저 생성하지 않은 경우 MongoDB는 _id 필드에 컬렉션을 생성하고 샤딩합니다. 그러나 샤드 collection을 먼저 생성하는 것이 좋습니다.

  • 버전 4.2부터 MongoDB는 기존 샤드 collection 교체를 더 이상 지원하지 않습니다.

  • 버전 4.0부터 출력 collection이 이미 존재하지만 샤딩되지 않은 경우 맵 리듀스가 실패합니다.

  • 새 컬렉션이나 빈 샤드 컬렉션의 경우, MongoDB는 맵 리듀스 작업의 첫 번째 단계 결과를 사용하여 샤드 간에 분산된 초기 청크 를 생성합니다.

  • mongos 청크를 소유한 모든 샤드에 맵 리듀스 후처리 작업을 병렬로 발송합니다. 후처리 중에 각 샤드는 다른 샤드에서 자체 청크에 대한 결과를 가져오고, 최종 축소/완료를 실행하고, 출력 collection에 로컬로 씁니다.

참고

  • 이후의 맵 리듀스 작업 중에 MongoDB는 필요에 따라 청크를 분할합니다.

  • 동시성 문제를 방지하기 위해 후처리 중에 output collection에 대한 청크 균형 조정이 자동으로 방지됩니다.

← 맵 축소