MongoDB
 sql >> Database >  >> NoSQL >> MongoDB

Database NoSQL:buoni candidati per l'elaborazione/aggregazione e il rollup dei log?

Diverse soluzioni NoSQL risolvono problemi diversi per usi diversi, quindi prima di tutto la cosa migliore da fare è guardare il tuo problema e analizzarlo

  • Stai scrivendo pesantemente per l'archiviazione, quindi la velocità di scrittura è importante per te
  • Vuoi eseguire operazioni di aggregazione su quei dati e avere i risultati facilmente interrogabili
  • La velocità di lettura non è così importante dal suono delle cose, almeno non in un modo in cui "l'applicazione web deve essere davvero reattiva per milioni di persone"
  • Non so se hai bisogno di query dinamiche o meno

Diamo un'occhiata a Couch, Mongo e Raven in modo generalizzato e di altissimo livello

Corvo

  • Scrive veloci
  • Query veloci (eventualmente coerenti, precalcolate, aggregazione tramite mappa/riduzione)
  • Query dinamiche possibili, ma non proprio appropriate al tuo caso d'uso, poiché molto probabilmente eseguirai query per data ecc.

Mongo

  • Scrive alla cieca (a mio parere pericolosamente, perché spegnersi significa perdere dati;-))
  • Letture lente (relativamente), aggregazione tramite mappa/riduzione, non precalcolata
  • Le query dinamiche sono proprio quello che fai, ma probabilmente devi definire gli indici sulle tue colonne se vuoi ottenere qualsiasi tipo di prestazione su questo tipo di dati

Divano

  • Scrive veloci
  • Letture veloci (precalcolate, ma aggiornate solo quando leggi (IIRC)
  • Le query dinamiche non sono possibili, tutte predefinite tramite mappa o funzioni mappa/riduci

Quindi, in pratica, hai bisogno di query dinamiche su questo tipo di dati? La velocità di lettura è incredibilmente importante per te? Se hai bisogno di query dinamiche, allora vorrai Raven o Mongo (per questo genere di cose Couch probabilmente non è quello che stai cercando comunque).

FWIW, l'unico caso d'uso di Mongo secondo me è per la registrazione, quindi potresti avere una risposta lì.