sql >> Databasteknik >  >> NoSQL >> MongoDB

NoSQL-databaser - bra kandidater för loggbearbetning/aggregering och rollup?

Olika NoSQL-lösningar löser olika problem för olika användningsområden - så först och främst är det bästa du kan göra att titta på ditt problem och bryta ner det

  • Du skriver tungt till lagring, därför är skrivhastigheten viktig för dig
  • Du vill utföra aggregeringsoperationer på den datan och få resultaten av den lätt att söka efter
  • Läshastigheten är inte så viktig utifrån ljudet av saker, åtminstone inte i en "webbapplikation måste verkligen vara lyhörd för miljontals människor" på ett sätt
  • Jag vet inte om du behöver dynamiska frågor eller inte

Låt oss titta på Couch, Mongo och Raven på ett generaliserat sätt på mycket hög nivå

Raven

  • Snabbskrivning
  • Snabba frågor (så småningom konsekventa, förberäknade, aggregering via kartan/förminska)
  • Dynamiska frågor möjliga, men inte riktigt lämpliga för ditt användningsfall, eftersom du med största sannolikhet kommer att fråga efter datum etc.

Mongo

  • Blindingly Fast skriver (Enligt min mening farligt, eftersom strömavbrott innebär att data förloras;-))
  • Långsamma läsningar (relativt), aggregering via kartan/förminska, inte förberäknad
  • Dynamiska frågor är precis vad_du_gör, men du måste förmodligen definiera index på dina kolumner om du vill ha någon form av prestanda på den här typen av data

Soffa

  • Snabbskrivning
  • Snabb läsning (Förberäknad, men uppdaterad endast när du läser (IIRC)
  • Dynamiska frågor är inte möjliga, alla fördefinierade via kart- eller kart-/reduceringsfunktioner

Så i grund och botten - behöver du dynamiska frågor över denna typ av data? Är läshastigheten otroligt viktig för dig? Om du behöver dynamiska frågor så vill du ha Raven eller Mongo (för den här typen av saker är soffan förmodligen inte vad du letar efter ändå).

FWIW, Mongos enda användningsfall enligt min mening ÄR för loggning, så du kanske har ett svar där.




  1. Hur man (korrekt) distribuerar MongoDB på Kubernetes och får åtkomst till det från en annan pod/jobb?

  2. MongoDB:ovillkorliga uppdateringar?

  3. Problem i samband mellan Node.js och MongoDB-behållare som använder miljö var. i Docker Compose

  4. Mongoid:använder du mer än en databas?