Ik ben zelf een starter op NoSQL-databases. Dus ik beantwoord dit ten koste van potentiële stemmen, maar het zal een geweldige leerervaring voor mij zijn.
- om te zien of MongoDB geschikt is voor het bewaren van dergelijke gegevens, die uiteindelijk worden opgevraagd tegen tijdbereiken (bijvoorbeeld alle afbeeldingen van een bepaalde camera tussen een bepaald uur ophalen)? Eventuele suggesties over op documenten gebaseerd schema-ontwerp voor mijn geval?
MongoDB is een documentgeoriënteerde db en is goed in het opvragen van binnen een aggregaat (je noemt het document). Aangezien u de gegevens van elke camera al in een eigen tabel opslaat, heeft u in MongoDB een aparte verzameling gemaakt voor elke camera. Hier is hoe u voert zoekopdrachten uit over de periode.
- Wat moeten de specificaties van de server zijn (CPU, RAM, schijf)? enige suggestie?
Alle NoSQL-databases zijn gebouwd om scale-out op basishardware. Maar tussen haakjes, je hebt de vraag gesteld, misschien denk je eraan om de prestaties te verbeteren door opschalen . Je kunt beginnen met een redelijke machine en naarmate de belasting toeneemt, kun je steeds meer servers toevoegen (scale-out). U hoeft geen high-end server te plannen en te kopen.
- Moet ik Sharding/Replicatie voor dit scenario overwegen (terwijl ik de schriftelijke prestaties in overweging neem om replicasets te synchroniseren)?
MongoDB vergrendelt de hele db voor een enkele schrijfactie (maar levert andere bewerkingen op) en is bedoeld voor systemen die meer leesbewerkingen dan schrijfbewerkingen hebben. Dit hangt dus af van hoe uw systeem is. Er zijn meerdere manieren van sharding en deze moeten domeinspecifiek zijn. Een generiek antwoord is niet mogelijk. Er kunnen echter enkele voorbeelden worden gegeven, zoals sharding per geografie, per vertakking, enz.
Lees ook Een eenvoudige Engelse inleiding tot de CAP-stelling
Bijgewerkt met antwoord op de opmerking over sharding
Volgens hun documentatie , Overweeg om een shard-cluster te implementeren als:
Dus op basis van het laatste punt ja. De functie voor automatisch sharden is gebouwd om schrijfbewerkingen te schalen. In dat geval heb je een schrijfblokkering per shard , niet per database . Maar de mijne is een theoretisch antwoord. Ik raad u aan om advies in te winnen bij de 10gen.com-groep.