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

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