Docs Menu
Docs Home
/ /
Map-Reduce
/ / /

Map-Reduce y colecciones fragmentadas

Nota

Canalización de agregación como alternativa a Map-Reduce

A partir de MongoDB 5.0, map-reduce está obsoleto:

Para ejemplos de alternativas de pipeline de agregación a map-reduce, consulte:

Map-reduce admite operaciones en colecciones fragmentadas, tanto como entrada como como salida. Esta sección describe el comportamiento de específico para colecciones mapReduce fragmentadas.

Al usar una colección fragmentada como entrada para una operación de map-reduce, enviará automáticamente el trabajo de map-reduce a cadamongos mongos fragmento en paralelo. No se requiere ninguna opción especial. esperará a que finalicen los trabajos en todos los fragmentos.

Si el out campo para tiene mapReduce el sharded valor, MongoDB fragmenta la colección de salida utilizando el _id campo como clave de fragmentación.

Para exportar a una colección fragmentada:

  • Si la colección de salida no existe, primero crea la colección particionada.

  • Si la colección de salida ya existe pero no está fragmentada, map-reduce falla.

  • Para una colección fragmentada nueva o vacía, MongoDB utiliza los resultados de la primera etapa de la operación map-reduce para crear los fragmentos iniciales distribuidos entre los fragmentos.

  • mongos Envía, en paralelo, un trabajo de posprocesamiento de map-reduce a cada fragmento que posee un fragmento. Durante el posprocesamiento, cada fragmento extrae los resultados de sus propios fragmentos de los demás, ejecuta la reducción/finalización final y escribe localmente en la colección de salida.

Nota

  • Durante trabajos de reducción de mapas posteriores, MongoDB divide fragmentos según sea necesario.

  • El equilibrio de fragmentos para la colección de salida se evita automáticamente durante el posprocesamiento para evitar problemas de concurrencia.

Volver

Map-Reduce

En esta página