Kaj je Sharding v MongoDB?
Sharding je koncept v MongoDB, ki razdeli velike nabore podatkov v majhne nabore podatkov v več primerkih MongoDB.
Včasih bodo podatki v MongoDB tako veliki, da lahko poizvedbe v zvezi s tako velikimi nabori podatkov povzročijo veliko izkoriščenost CPU na strežniku. Za reševanje te situacije ima MongoDB koncept Sharding, ki je v bistvu delitev naborov podatkov v več primerkih MongoDB.
Zbirka, ki bi lahko bila velika, je dejansko razdeljena na več zbirk ali Shards, kot jih imenujejo. Logično je, da vsi drobci delujejo kot ena zbirka.
Kako izvesti ostrenje
Shardi se izvajajo z uporabo grozdov, ki niso nič drugega kot skupina primerkov MongoDB.
Sestavni deli Shard vključujejo
- Shard - To je osnovna stvar in to ni nič drugega kot primerek MongoDB, ki vsebuje podmnožico podatkov. V proizvodnih okoljih morajo biti vsi drobci del kompletov kopij.
- Strežnik za konfiguriranje - to je primerek mongodb, ki vsebuje metapodatke o gruči, v bistvu informacije o različnih primerkih mongodb, ki bodo hranili podatke o drobcih.
- Usmerjevalnik - to je primerek mongodb, ki je v osnovi odgovoren za preusmerjanje ukazov, ki jih pošlje odjemalec, na prave strežnike.
Primer grozdenja ostrenja po korakih
Korak 1) Ustvarite ločeno bazo podatkov za konfiguracijski strežnik.
mkdir /data/configdb
2. korak) Zaženite primerek mongodb v konfiguracijskem načinu. Recimo, če imamo strežnik z imenom Server D, ki bi bil naš konfiguracijski strežnik, bi morali zagnati spodnji ukaz, da ga konfiguriramo kot konfiguracijski strežnik.
mongod -configdb ServerD: 27019
Korak 3) Zaženite primerek mongos z določitvijo konfiguracijskega strežnika
mongos -configdb ServerD: 27019
Korak 4) Iz lupine mongo se povežite s primerkom mongo
mongo -host ServerD -port 27017
Korak 5) Če imate strežnik A in strežnik B, ki ju je treba dodati v gručo, izdajte spodnje ukaze
sh.addShard("ServerA:27017")sh.addShard("ServerB:27017")
Korak 6) Omogočite ostrenje za bazo podatkov. Torej, če moramo razbiti bazo podatkov Employeedb, izdajte spodnji ukaz
sh.enableSharding(Employeedb)
Korak 7) Omogočite ostrenje za zbirko. Če moramo torej razbiti zbirko Employee, izdajte spodnji ukaz
Sh.shardCollection("db.Employee" , { "Employeeid" : 1 , "EmployeeName" : 1})
Povzetek:
- Kot je razloženo v vadnici, je Sharding koncept v MongoDB, ki velike nabore podatkov deli na majhne nabore podatkov v več primerkih MongoDB.