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

Qual banco de dados NoSQL devo usar para registrar?


Decidi revisar esta resposta aceita, pois o estado da arte mudou significativamente nos últimos 18 meses e existem alternativas muito melhores.

Nova resposta

O MongoDB é uma escolha abaixo da média para uma solução de log escalável. Existem as razões usuais para isso (desempenho de gravação sob carga, por exemplo). Eu gostaria de apresentar mais um, que é que ele resolve apenas um único caso de uso em uma solução de log.

Uma solução de registro forte precisa cobrir pelo menos os seguintes estágios:
  • Coleção
  • Transporte
  • Processamento
  • Armazenamento
  • Pesquisar
  • Visualização

O MongoDB como opção apenas resolve o caso de uso de armazenamento (embora um pouco mal). Uma vez analisada a cadeia completa, existem soluções mais adequadas.

@KazukiOhta menciona algumas opções. Minha solução de ponta a ponta preferida atualmente envolve:
  • Logstash-Forwarder para coleta e transporte
  • Logstash e Riemann para processamento
  • ElasticSearch para armazenamento e consultas
  • Kibana3 para visualização

O uso subjacente do ElasticSearch para armazenamento de dados de log usa a melhor solução NoSQL atual para o caso de uso de log e pesquisa. O fato de o Logstash-Forwarder / Logstash / ElasticSearch / Kibana3 estarem sob o guarda-chuva do ElasticSearch torna um argumento ainda mais convincente.

Como o Logstash também pode atuar como um proxy Graphite, uma cadeia muito semelhante pode ser construída para o problema associado de coletar e analisar métricas (não apenas logs).

Resposta antiga

As Coleções Limitadas do MongoDB são extremamente populares e adequadas para registro, com o bônus adicional de serem 'sem esquema', o que geralmente é um ajuste semântico para registro. Muitas vezes, só sabemos o que queremos registrar bem em um projeto, ou depois que determinados problemas foram encontrados na produção. Bancos de dados relacionais ou esquemas rígidos tendem a ser difíceis de mudar nesses casos, e tentativas de torná-los 'flexíveis' tendem apenas a torná-los 'lentos' e difíceis de usar ou entender.

Mas se você quiser gerenciar seus logs no escuro e ter lasers funcionando e fazer parecer que você é do espaço, sempre há o Graylog2 que usa o MongoDB como parte de sua infraestrutura geral, mas fornece muito mais, como um formato comum e extensível, um servidor de coleta de logs dedicado, arquitetura distribuída e uma interface de usuário divertida.