MongoDB Sharding: Korak po korak Vodič s primjerom

Sadržaj:

Anonim

Što je Sharding u MongoDB-u?

Sharding je koncept u MongoDB-u, koji dijeli velike skupove podataka u male skupove podataka u više instanci MongoDB-a.

Ponekad će podaci unutar MongoDB-a biti toliko ogromni da upiti prema tako velikim skupovima podataka mogu prouzročiti puno iskorištavanje CPU-a na poslužitelju. Da bi se riješio ove situacije, MongoDB ima koncept Shardinga, koji je u osnovi razdvajanje skupova podataka na više instanci MongoDB-a.

Kolekcija koja bi mogla biti velika podijeljena je u više kolekcija ili Shards kako se nazivaju. Logično je da sve krhotine djeluju kao jedna zbirka.

Kako primijeniti sjenčanje

Krhotine se implementiraju pomoću klastera koji nisu ništa drugo do skupina instanci MongoDB.

Komponente krhotine uključuju

  1. Krhotina - ovo je osnovna stvar, a ovo nije ništa drugo nego instanca MongoDB koja sadrži podskup podataka. U proizvodnim okruženjima sve krhotine moraju biti dio kompleta replika.
  2. Config poslužitelj - ovo je instanca mongodb koja sadrži metapodatke o klasteru, u osnovi informacije o raznim instancama mongodb-a koje će sadržavati podatke o krhotinama.
  3. Usmjerivač - Ovo je instanca mongodb koja je u osnovi odgovorna za preusmjeravanje naredbi koje klijent šalje na prave poslužitelje.

Primjer klastera za oštrenje korak po korak

Korak 1) Stvorite zasebnu bazu podataka za konfiguracijski poslužitelj.

mkdir /data/configdb

Korak 2) Pokrenite instancu mongodb u načinu konfiguracije. Pretpostavimo da ako imamo poslužitelj nazvan Server D koji bi bio naš konfiguracijski poslužitelj, trebali bismo pokrenuti naredbu u nastavku da bismo konfigurirali poslužitelj kao konfiguracijski poslužitelj.

mongod -configdb ServerD: 27019

Korak 3) Pokrenite instancu mongos navodeći konfiguracijski poslužitelj

mongos -configdb ServerD: 27019

Korak 4) Iz mongo ljuske spojite se na instancu mongo

mongo -host ServerD -port 27017

Korak 5) Ako imate poslužitelj A i poslužitelj B koji treba dodati u klaster, izdajte naredbe u nastavku

sh.addShard("ServerA:27017")sh.addShard("ServerB:27017")

Korak 6) Omogućite sjenčanje za bazu podataka. Dakle, ako trebamo kršiti bazu podataka Employeedb, izdajte naredbu u nastavku

sh.enableSharding(Employeedb)

Korak 7) Omogućite oštrinu za kolekciju. Dakle, ako trebamo kršiti kolekciju zaposlenika, izdajte naredbu u nastavku

Sh.shardCollection("db.Employee" , { "Employeeid" : 1 , "EmployeeName" : 1})

Sažetak:

  • Kao što je objašnjeno u vodiču, Sharding je koncept u MongoDB-u, koji dijeli velike skupove podataka u male skupove podataka u više instanci MongoDB-a.