MongoDB
 sql >> Base de données >  >> NoSQL >> MongoDB

Bases de données NoSQL - de bons candidats pour le traitement/l'agrégation et le cumul des journaux ?

Différentes solutions NoSQL résolvent différents problèmes pour différentes utilisations. La meilleure chose à faire est donc d'abord d'examiner votre problème et de le décomposer

  • Vous écrivez lourdement au stockage, la vitesse d'écriture est donc importante pour vous
  • Vous souhaitez effectuer des opérations d'agrégation sur ces données et en avoir les résultats facilement interrogeables
  • La vitesse de lecture n'est pas si importante d'après le son des choses, du moins pas dans une sorte de "application Web qui doit être vraiment réactive pour des millions de personnes"
  • Je ne sais pas si vous avez besoin de requêtes dynamiques ou non

Regardons Couch, Mongo et Raven d'une manière généralisée de très haut niveau

Corbeau

  • Écritures rapides
  • Requêtes rapides (éventuellement cohérentes, pré-calculées, agrégation via map/reduce)
  • Requêtes dynamiques possibles, mais pas vraiment adaptées à votre cas d'utilisation, car vous allez probablement interroger par date, etc.

Mongo

  • Écrit d'une vitesse aveuglante (à mon avis, dangereusement, car une coupure de courant signifie une perte de données ;-))
  • Lectures lentes (relativement), agrégation via map/reduce, non précalculées
  • Les requêtes dynamiques ne sont que ce que vous faites, mais vous devez probablement définir des index sur vos colonnes si vous souhaitez obtenir des performances sur ce type de données

Canapé

  • Écritures rapides
  • Lectures rapides (précalculées, mais mises à jour uniquement lorsque vous lisez (IIRC)
  • Requêtes dynamiques impossibles, toutes prédéfinies via les fonctions map ou map/reduce

Donc, en gros, avez-vous besoin de requêtes dynamiques sur ce type de données ? La vitesse de lecture est-elle extrêmement importante pour vous ? Si vous avez besoin de requêtes dynamiques, vous aurez besoin de Raven ou de Mongo (pour ce genre de chose, Couch n'est probablement pas ce que vous recherchez de toute façon).

FWIW, le seul cas d'utilisation de Mongo à mon avis EST pour la journalisation, donc vous pourriez avoir une réponse là-bas.