Estoy trabajando en un proyecto que registra la agregación y el análisis como parte de un proyecto más grande. No sé qué base de datos elegir para manejar estos registros. Últimamente voy y vienen entre MongoDB y Cassandra, pero estoy seguro de que hay otros que también se ajustan a mis necesidades. ¿Cuál debería elegir y por qué?Mongodb vs Cassandra para agregar, buscar y analizar muchos registros
Todo esto es muy al principio en este momento, pero aquí son los requisitos hasta ahora:
- registros están en el formato syslog
- consultas son en su mayoría en una pequeña cadena que ahora está en el mensaje , pero lo conseguiré en un campo separado. Y también habrá filtros basados en la fecha, la gravedad o la etiqueta. Muy rara vez, la gente simplemente busca una cadena aleatoria dentro del mensaje.
- análisis por hora de algunas de las entradas del registro
- mantener a los registros de un período de tiempo configurable
- vendrán más, estoy seguro :) Es por eso que estoy pensando NoSQL es más apropiado, porque podemos cambiar el esquema
Estamos esperando hacer crecer la base de datos a algunos TB de datos (y ~ 50K insertos por segundo), por lo que la fragmentación es una necesidad. Las consultas no son tan frecuentes, ya que son utilizadas principalmente por los desarrolladores del proyecto más grande. Pero un resultado debe ser devuelto en unos segundos.
En este momento, el almacenamiento es común (y lento) para todas las máquinas. Por lo tanto, para la escalabilidad, supongo que necesitamos hacer un mejor uso de la memoria y el subprocesamiento múltiple para que la fragmentación tenga sentido.
Las ideas básicas que obtuve hasta ahora son que MongoDB tiene más funciones, como resultados de clasificación o regex, y es más fácil configurar una configuración decente, mientras que Cassandra parece más escalable (simplemente agregando servidores), y también tiene una algunas características interesantes, como poner un TTL en los datos.
he terminado usando Elasticsearch. Eche un vistazo aquí para obtener más información: [link] (http://www.elasticsearch.org/tutorials/2012/05/19/elasticsearch-for-logging.html) –