Š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
- 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.
- 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.
- 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.