Wat is sharding in MongoDB?
Sharding is een concept in MongoDB, dat grote gegevenssets opsplitst in kleine gegevenssets over meerdere MongoDB-instanties.
Soms zijn de gegevens binnen MongoDB zo groot, dat query's op dergelijke big data-sets veel CPU-gebruik op de server kunnen veroorzaken. Om deze situatie aan te pakken, heeft MongoDB een concept van Sharding, wat in feite het splitsen van datasets over meerdere MongoDB-instanties is.
De verzameling die groot van omvang zou kunnen zijn, is in feite verdeeld over meerdere verzamelingen of Shards, zoals ze worden genoemd. Logischerwijs werken alle scherven als één verzameling.
Hoe sharding te implementeren
Shards worden geïmplementeerd met behulp van clusters die niets anders zijn dan een groep MongoDB-instanties.
De componenten van een Shard zijn onder meer
- A Shard - Dit is het fundamentele, en dit is niets anders dan een MongoDB-instantie die de subset van de gegevens bevat. In productieomgevingen moeten alle shards deel uitmaken van replicasets.
- Config-server - Dit is een mongodb-instantie die metagegevens over het cluster bevat, in feite informatie over de verschillende mongodb-instanties die de shard-gegevens zullen bevatten.
- Een router - Dit is een mongodb-instantie die in feite verantwoordelijk is voor het omleiden van de opdrachten die door de client naar de juiste servers worden gestuurd.
Stap voor stap Sharding Cluster-voorbeeld
Stap 1) Maak een aparte database voor de configuratieserver.
mkdir /data/configdb
Stap 2) Start de mongodb-instantie in de configuratiemodus. Stel dat als we een server hebben met de naam Server D die onze configuratieserver zou zijn, we de onderstaande opdracht zouden moeten uitvoeren om de server als een configuratieserver te configureren.
mongod -configdb ServerD: 27019
Stap 3) Start de Mongos-instantie door de configuratieserver op te geven
mongos -configdb ServerD: 27019
Stap 4) Maak vanuit de mongoschelp verbinding met de instantie van de mongo
mongo -host ServerD -port 27017
Stap 5) Als u Server A en Server B hebt die aan het cluster moeten worden toegevoegd, voert u de onderstaande opdrachten uit
sh.addShard("ServerA:27017")sh.addShard("ServerB:27017")
Stap 6) Schakel sharding in voor de database. Dus als we de Employeedb-database moeten scherven, voer dan de onderstaande opdracht uit
sh.enableSharding(Employeedb)
Stap 7) Schakel sharding in voor de verzameling. Dus als we de werknemerscollectie moeten scherven, geeft u de onderstaande opdracht op
Sh.shardCollection("db.Employee" , { "Employeeid" : 1 , "EmployeeName" : 1})
Overzicht:
- Zoals uitgelegd in de zelfstudie, is Sharding een concept in MongoDB, dat grote gegevenssets opsplitst in kleine gegevenssets over meerdere MongoDB-instanties.