Hvad er Sharding i MongoDB?
Sharding er et koncept i MongoDB, der opdeler store datasæt i små datasæt på tværs af flere MongoDB-forekomster.
Nogle gange vil dataene i MongoDB være så enorme, at forespørgsler mod sådanne store datasæt kan forårsage meget CPU-udnyttelse på serveren. For at tackle denne situation har MongoDB et koncept med Sharding, som grundlæggende er opdeling af datasæt på tværs af flere MongoDB-forekomster.
Samlingen, der kunne være stor i størrelse, er faktisk delt over flere samlinger eller Shards, som de kaldes. Logisk fungerer alle skårene som en samling.
Sådan implementeres Sharding
Shards implementeres ved hjælp af klynger, der kun er en gruppe MongoDB-forekomster.
Komponenterne i en Shard inkluderer
- A Shard - Dette er den grundlæggende ting, og dette er intet andet end en MongoDB-forekomst, der indeholder delmængden af dataene. I produktionsmiljøer skal alle skår være en del af replika-sæt.
- Config-server - Dette er en mongodb-forekomst, der indeholder metadata om klyngen, dybest set information om de forskellige mongodb-forekomster, der vil indeholde shard-dataene.
- En router - Dette er en mongodb-instans, som grundlæggende er ansvarlig for at omdirigere de kommandoer, som klienten sender til de rigtige servere.
Trin for trin Sharding Cluster Eksempel
Trin 1) Opret en separat database til konfigurationsserveren.
mkdir /data/configdb
Trin 2) Start mongodb-forekomsten i konfigurationstilstand. Antag, at hvis vi har en server ved navn Server D, som ville være vores konfigurationsserver, skal vi køre nedenstående kommando for at konfigurere serveren som en konfigurationsserver.
mongod -configdb ServerD: 27019
Trin 3) Start Mongo-forekomsten ved at specificere konfigurationsserveren
mongos -configdb ServerD: 27019
Trin 4) Opret forbindelse til mongos instans fra mongoskallen
mongo -host ServerD -port 27017
Trin 5) Hvis du har server A og server B, der skal føjes til klyngen, skal du udstede nedenstående kommandoer
sh.addShard("ServerA:27017")sh.addShard("ServerB:27017")
Trin 6) Aktiver sharding til databasen. Så hvis vi har brug for at splitte Employeedb-databasen, skal du udstede kommandoen nedenfor
sh.enableSharding(Employeedb)
Trin 7) Aktiver sharding til samlingen. Så hvis vi har brug for at splitte medarbejderindsamlingen, skal du udstede kommandoen nedenfor
Sh.shardCollection("db.Employee" , { "Employeeid" : 1 , "EmployeeName" : 1})
Resumé:
- Som forklaret i tutorial er Sharding et koncept i MongoDB, der opdeler store datasæt i små datasæt på tværs af flere MongoDB-forekomster.