sql >> Database >  >> NoSQL >> MongoDB

NoSQL-databases - goede kandidaten voor logverwerking/aggregatie en rollup?

Verschillende NoSQL-oplossingen lossen verschillende problemen op voor verschillende toepassingen - dus eerst kunt u het beste naar uw probleem kijken en het opsplitsen

  • Je schrijft veel naar opslag, daarom is schrijfsnelheid belangrijk voor u
  • U wilt aggregatiebewerkingen op die gegevens uitvoeren en de resultaten van die gegevens gemakkelijk opvraagbaar hebben
  • Leessnelheid is niet zo belangrijk, zo te zien, in ieder geval niet in een "webapplicatie moet echt responsief zijn voor miljoenen mensen"-achtige manier
  • Ik weet niet of je dynamische zoekopdrachten nodig hebt of niet

Laten we Couch, Mongo en Raven op een zeer hoog niveau, gegeneraliseerde manier bekijken

Raaf

  • Snel schrijven
  • Snelle zoekopdrachten (uiteindelijk consistent, vooraf berekend, aggregatie via kaart/verkleining)
  • Dynamische zoekopdrachten mogelijk, maar niet echt geschikt voor uw gebruik, omdat u waarschijnlijk op datum gaat zoeken, enz.

Mongo

  • Blindingly Fast schrijft (naar mijn mening gevaarlijk, omdat de stroom uitvalt betekent verlies van gegevens;-))
  • Langzaam lezen (relatief), aggregatie via kaart/verkleinen, niet vooraf berekend
  • Dynamische zoekopdrachten zijn gewoon wat_u_doe, maar u moet waarschijnlijk indexen voor uw kolommen definiëren als u enige vorm van prestatie op dit soort gegevens wilt

Bank

  • Snel schrijven
  • Snelle uitlezingen (vooraf berekend, maar alleen bijgewerkt wanneer u leest (IIRC)
  • Dynamische zoekopdrachten niet mogelijk, allemaal vooraf gedefinieerd via kaart- of kaart/verkleiningsfuncties

Dus eigenlijk:heb je dynamische queries nodig over dit soort gegevens? Is de leessnelheid ontzettend belangrijk voor je? Als je dynamische vragen nodig hebt, dan heb je Raven of Mongo nodig (voor dit soort dingen is Couch waarschijnlijk toch niet wat je zoekt).

FWIW, Mongo's enige use-case is naar mijn mening IS voor het loggen, dus misschien heb je daar een antwoord.




  1. Hoe mongo DB in één opdracht te stoppen

  2. Hoe verwijder je één 'document' op 'ID' met behulp van de officiële C#-driver voor MongoDB?

  3. Spring Data Mongo - Hoe overgeërfde POJO-entiteiten in kaart te brengen?

  4. Een filter testen op een document aan de clientzijde