sql >> Database >  >> NoSQL >> MongoDB

MongoDB versus Cassandra

Veel leesbewerkingen in elke zoekopdracht, minder regelmatig schrijven

Beide databases presteren goed bij het lezen waarbij de hot dataset in het geheugen past. Beide leggen ook de nadruk op datamodellen zonder join (en moedigen in plaats daarvan denormalisatie aan), en beide bieden indexen op documenten of rijen, hoewel de indexen van MongoDB momenteel flexibeler zijn.

Cassandra's opslagengine zorgt voor constante schrijfbewerkingen, hoe groot uw dataset ook wordt. Schrijven is problematischer in MongoDB, deels vanwege de op b-tree gebaseerde opslagengine, maar meer vanwege de vergrendeling op meerdere granulaten.

Voor analyse biedt MongoDB een aangepaste implementatie voor kaart/reductie; Cassandra biedt native Hadoop-ondersteuning, inclusief voor Hive (een SQL-datawarehouse gebouwd op Hadoop map/reduce) en Pig (een Hadoop-specifieke analysetaal waarvan velen denken dat deze beter geschikt is voor map/reduce workloads dan SQL). Cassandra ondersteunt ook het gebruik van Spark.

Geen zorgen over "enorme" schaalbaarheid

Als u naar een enkele server kijkt, past MongoDB waarschijnlijk beter. Voor degenen die zich meer zorgen maken over schalen, zal Cassandra's no-single-point-of-failure-architectuur gemakkelijker in te stellen en betrouwbaarder zijn. (MongoDB's algemene schrijfvergrendeling wordt ook pijnlijker.) Cassandra geeft ook veel meer controle over hoe uw replicatie werkt, inclusief ondersteuning voor meerdere datacenters.

Meer bezorgd over eenvoudige installatie, onderhoud en code

Beide zijn triviaal om in te stellen, met redelijke standaardinstellingen voor een enkele server. Cassandra is eenvoudiger in te stellen in een configuratie met meerdere servers, omdat u zich geen zorgen hoeft te maken over nodes met speciale rollen.

Als u momenteel JSON-blobs gebruikt, is MongoDB een waanzinnig goede match voor uw gebruiksscenario, aangezien het BSON gebruikt om de gegevens op te slaan. U zult rijkere en meer doorzoekbare gegevens kunnen hebben dan in uw huidige database. Dit zou de belangrijkste overwinning voor Mongo zijn.



  1. MongoDB $sampleRate

  2. Hoe array in subdocument te filteren met MongoDB

  3. docker-compose + django + redis - Fout 111 bij verbinding met 127.0.0.1:6379. Verbinding geweigerd

  4. MongoDB groeperen op waarden in een matrixveld