Não me considero a pessoa certa para escrever artigos detalhados, pois geralmente costumo omitir um monte de detalhes. Mas gostaria de tentar uma abordagem diferente: compartilharei os melhores materiais que tenho encontrado e utilizado para aprender sobre algum recurso em específico.
Hoje vou dar uma olhada no MongoDB MapReduce. Como é normal (pelo menos para ter certeza de que estamos nos livrando de todos os conselhos RTFM futuros), vamos começar com os documentos oficiais. No caso do MongoDB MapReduce, a documentação oficial irá nos fornecer detalhes sobre:
- a sintaxe completa do comando
- especificações para funções map e reduce
- como um bônus, alguns exemplos básicos
Há também alguns aspectos importantes que você precisará ter em mente ao implementar suas próprias funções do MongoDB MapReduce:
- O mecanismo do MapReduce poderá invocar funções de redução iterativamente, assim, essas funções devem ser idempotentes. Ou seja, o seguinte deve manter a sua função de redução: para todos k, vals: reduzir (k, [reduzir (k, vals)]) == reduzir (k, vals).
- Atualmente, o valor de retorno de uma função de redução não pode ser um array (que é normalmente um objeto ou um número).
- Se você precisar executar uma operação apenas uma vez, use uma função de finalizar.
Sabendo o básico, o que encontrei para funcionar bem para mim foi dar uma olhada em um exemplo de vida simples, mas quase real. Neste caso, eu escolhi o pedaço de código a seguir que implementa uma pesquisa básica de texto.
Também achei muito útil dar uma olhada em como se traduz SQL para MapReduce em MongoDB (inglês).
Só para ter certeza de que as coisas estão corretas até agora, eu usei a terceira parte do artigo de Kyle Banker sobre agregação no MongoDB: noções básicas de MapReduce.
O último passo na aprendizagem sobre MapReduce em MongoDB foi dar uma olhada em alguns casos de uso reais. Dependendo de sua preferência de linguagem de programação, eu recomendo um destes dois casos de uso MongoDB MapReduce:
- Ruby: Visualizando arquivos de log com MongoDB, MapReduce, Ruby e Google Charts: parte 1 e parte 2
- Perl: Usando MongoDB e MapReduce em logs de acesso do Apache
Resumindo nosso breve artigo sobre MongoDB MapReduce:
- Documentos oficiais
- Exemplo básico de busca de texto
- Traduzir SQL para MapReduce MongoDB
- Noções básicas de MapReduce
- Casos de uso MongoDB MapReduce: Visualizando os arquivos de log com MongoDB, MapReduce, Ruby & Google Map (parte 1 e parte 2) e Utilizando MongoDB MapReduce em logs de acesso Apache
Caso você tenha outro material MongoDB MapReduce que considere um elemento essencial, por favor compartilhe!
?
Texto original disponível em http://nosql.mypopescu.com/post/394779847/mongodb-tutorial-mapreduce