MongoDB Sharding: stapsgewijze zelfstudie met voorbeeld

Inhoudsopgave:

Anonim

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

  1. 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.
  2. 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.
  3. 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.