Menu Docs
Página inicial do Docs
/
Manual do MongoDB
/ /

Map-Reduce e Coleções Fragmentadas

Nesta página

  • collection fragmentada como entrada
  • collection fragmentada como saída

Observação

Pipeline de Agregação como uma Alternativa ao map-reduce

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

Para obter exemplos de alternativas de aggregation pipeline para map-reduce, consulte:

map-reduce oferece suporte a operações em collection fragmentadas, tanto como entrada quanto como saída. Esta seção descreve os comportamentos de mapReduce específicos para collection fragmentadas.

Ao utilizar a collection fragmentada como entrada para uma operação de map-reduce, o mongos despachará automaticamente a tarefa de map-reduce para cada fragmento em paralelo. Não é necessária nenhuma opção especial. mongos aguardará a conclusão das tarefas em todos os shards.

Se o campo out para mapReduce tiver o valor sharded , o MongoDB fragmentará a collection de saída usando o campo _id como a chave de fragmento.

Para gerar saída para uma collection fragmentada:

  • Se a collection de saída não existir, crie primeiro a collection fragmentada.

  • Se a collection de saída já existir, mas não estiver fragmentada, map-reduce falhará.

  • Para uma nova collection fragmentada ou vazia, o MongoDB utiliza os resultados do primeiro estágio da operação de map-reduce para criar as parte iniciais distribuídas entre os fragmentos.

  • mongos despacha, em paralelo, uma tarefa de pós-processamento de redução de mapa para cada fragmento que possui um bloco. Durante o pós-processamento, cada fragmento extrairá os resultados para seus próprios blocos dos outros fragmentos, executará a redução/finalização final e gravará localmente na coleta de saída.

Observação

  • Durante a tarefa posterior de map-reduce, o MongoDB faz a divisão da parte conforme necessário.

  • O balanceamento de parte para a collection de saída é automaticamente evitado durante o pós-processamento para evitar problemas de simultaneidade.

Voltar

Map-Reduce