MongoDB
 sql >> Base de Dados >  >> NoSQL >> MongoDB

Bancos de dados NoSQL - bons candidatos para processamento/agregação de log e rollup?


Diferentes soluções NoSQL resolvem diferentes problemas para diferentes usos - então, primeiro, a melhor coisa a fazer é analisar seu problema e decompô-lo
  • Você está escrevendo muito para armazenamento, portanto, a velocidade de gravação é importante para você
  • Você deseja realizar operações de agregação nesses dados e ter os resultados facilmente consultáveis
  • A velocidade de leitura não é tão importante pelo som das coisas, pelo menos não em um tipo de "aplicativo da Web precisa ser realmente responsivo para milhões de pessoas"
  • Não sei se você precisa de consultas dinâmicas ou não

Vamos olhar para Couch, Mongo e Raven em um nível muito alto e generalizado

Corvo
  • Gravações rápidas
  • Consultas rápidas (eventualmente consistentes, pré-computadas, agregação via map/reduce)
  • Consultas dinâmicas são possíveis, mas não são realmente adequadas ao seu caso de uso, pois você provavelmente fará consultas por data etc.

Mongo
  • Escritas incrivelmente rápidas (na minha opinião perigosamente, porque desligar significa perder dados;-))
  • Leituras lentas (relativamente), agregação via map/reduce, não pré-calculada
  • Consultas dinâmicas são apenas o que você faz, mas você provavelmente precisa definir índices em suas colunas se quiser algum tipo de desempenho nesse tipo de dados

Sofá
  • Gravações rápidas
  • Leituras rápidas (pré-computadas, mas atualizadas apenas quando você lê (IIRC)
  • Não é possível fazer consultas dinâmicas, todas pré-definidas por meio de funções map ou map/reduce

Então, basicamente - você precisa de consultas dinâmicas sobre esse tipo de dados? A velocidade de leitura é incrivelmente importante para você? Se você precisar de consultas dinâmicas, precisará do Raven ou do Mongo (para esse tipo de coisa, o Couch provavelmente não é o que você está procurando de qualquer maneira).

FWIW, o único caso de uso do Mongo na minha opinião é para log, então você pode ter uma resposta lá.