MongoDB Sharding: Steg för steg handledning med exempel
Vad är Sharding in MongoDB?
Sharding är ett begrepp inom MongoDB, som delar upp stora datamängder i små datamängder över flera MongoDB instanser.
Ibland data inom MongoDB kommer att vara så enorma att förfrågningar mot så stora datamängder kan orsaka mycket CPU-användning på servern. För att hantera denna situation, MongoDB har ett koncept med Sharding, som i grunden är uppdelningen av datamängder över flera MongoDB instanser.
Samlingen som kan vara stor i storlek är faktiskt uppdelad på flera samlingar eller Shards som de kallas. Logiskt sett fungerar alla skärvor som en samling.
Hur man implementerar Sharding
Skärvor implementeras genom att använda kluster som bara är en grupp av MongoDB instanser.
Komponenterna i en Shard inkluderar
- Lika hård – Det här är det grundläggande, och det här är inget annat än en MongoDB instans som innehåller delmängden av datan. I produktionsmiljöer måste alla skärvor vara en del av replikuppsättningar.
- Konfigurera server – Det här är en mongodb-instans som innehåller metadata om klustret, i princip information om de olika mongodb-instanserna som kommer att hålla skärvdata.
- En router – Det här är en mongodb-instans som i princip är ansvarig för att omdirigera kommandona som skickas av klienten till rätt servrar.
Steg för steg skärning Cluster Exempelvis
Steg 1) Skapa en separat databas för konfigurationsservern.
mkdir /data/configdb
Steg 2) Starta mongodb-instansen i konfigurationsläge. Anta att om vi har en server som heter Server D som skulle vara vår konfigurationsserver, skulle vi behöva köra kommandot nedan för att konfigurera servern som en konfigurationsserver.
mongod –configdb ServerD: 27019
Steg 3) Starta mongos-instansen genom att ange konfigurationsservern
mongos –configdb ServerD: 27019
Steg 4) Från mongo-skalet anslut till mongos instans
mongo –host ServerD –port 27017
Steg 5) Om du har Server A och Server B som behöver läggas till i klustret, utfärda kommandona nedan
sh.addShard("ServerA:27017") sh.addShard("ServerB:27017")
Steg 6) Aktivera delning för databasen. Så om vi behöver klippa Employeedb-databasen, utfärda kommandot nedan
sh.enableSharding(Employeedb)
Steg 7) Aktivera sönderdelning för samlingen. Så om vi behöver skära sönder personalsamlingen, utfärda kommandot nedan
Sh.shardCollection("db.Employee" , { "Employeeid" : 1 , "EmployeeName" : 1})
Sammanfattning:
- Såsom förklaras i handledning, Sharding är ett begrepp inom MongoDB, som delar upp stora datamängder i små datamängder över flera MongoDB instanser.