Sto lavorando a un progetto che registra l'aggregazione e l'analisi come parte di un progetto più grande. Non so quale database scegliere per gestire questi registri. Ultimamente sto andando avanti e indietro tra MongoDB e Cassandra, ma sono sicuro che ce ne sono altri che si adattano anche ai miei bisogni. Quale dovrei scegliere e perché?Mongodb vs Cassandra per l'aggregazione, la ricerca e l'analisi di molti registri
Il tutto è abbastanza all'inizio il momento, ma qui sono i requisiti finora:
- log sono in formato syslog
- query sono per lo più su una piccola stringa che ora è nel messaggio , ma lo otterrò in un campo separato. E ci saranno anche filtri basati su data, gravità o tag. Molto raramente, le persone cercano solo una stringa casuale all'interno del messaggio.
- analisi ogni ora da alcune delle voci di registro
- tenere i registri di un periodo di tempo configurabile
- più arriverà, sono sicuro :) Ecco perché sto pensando NoSQL è più appropriato, perché possiamo cambia lo schema.
Ci si aspetta di far crescere il database per alcuni TB di dati (e ~ 50K di inserzioni al secondo), quindi la condivisione è un must. Le query non sono così frequenti, perché sono utilizzate principalmente dagli sviluppatori del progetto più grande. Ma un risultato deve essere restituito in pochi secondi.
Al momento, lo spazio di archiviazione è comune (e lento) per tutte le macchine. Quindi, per la scalabilità, suppongo che dobbiamo fare il miglior uso della memoria e del multithreading, in modo che la sharding abbia senso.
Le idee di base ho ottenuto finora è che MongoDB ha più funzioni, come espressione regolare o l'ordinamento dei risultati, ed è più facile installazione per una configurazione decente, mentre Cassandra sembra più scalabile (da server semplicemente aggiungendo), e ha anche un alcune caratteristiche pulite, come mettere un TTL sui dati.
ho finito per usare elasticsearch. Dai un'occhiata qui per ulteriori informazioni: [link] (http://www.elasticsearch.org/tutorials/2012/05/19/elasticsearch-for-logging.html) –