Ce este Sharding în MongoDB?
Sharding este un concept în MongoDB, care împarte seturi mari de date în seturi mici de date în mai multe instanțe MongoDB.
Uneori, datele din MongoDB vor fi atât de mari, încât interogările împotriva unor astfel de seturi mari de date pot provoca o mare utilizare a CPU pe server. Pentru a aborda această situație, MongoDB are un concept de Sharding, care este practic împărțirea seturilor de date în mai multe instanțe MongoDB.
Colecția care ar putea avea dimensiuni mari este de fapt împărțită în mai multe colecții sau bucăți așa cum sunt numite. În mod logic, toate cioburile funcționează ca o singură colecție.
Cum se implementează fragmentarea
Fragmentele sunt implementate utilizând clustere care nu sunt altceva decât un grup de instanțe MongoDB.
Componentele unui Shard includ
- Un fragment - Acesta este lucrul de bază și acesta nu este altceva decât o instanță MongoDB care deține subsetul de date. În mediile de producție, toate cioburile trebuie să facă parte din seturile de replici.
- Server de configurare - Aceasta este o instanță mongodb care conține metadate despre cluster, în esență informații despre diferitele instanțe mongodb care vor conține datele fragmente.
- Un router - Aceasta este o instanță mongodb care este în principiu responsabilă pentru redirecționarea comenzilor trimise de client către serverele potrivite.
Exemplu pas cu pas de fragmentare a clusterului
Pasul 1) Creați o bază de date separată pentru serverul de configurare.
mkdir /data/configdb
Pasul 2) Porniți instanța mongodb în modul de configurare. Să presupunem că dacă avem un server numit Server D care ar fi serverul nostru de configurare, ar trebui să rulăm comanda de mai jos pentru a configura serverul ca server de configurare.
mongod -configdb ServerD: 27019
Pasul 3) Porniți instanța mongos specificând serverul de configurare
mongos -configdb ServerD: 27019
Pasul 4) De la shell-ul mongo conectați-vă la instanța mongo
mongo -host ServerD -port 27017
Pasul 5) Dacă aveți Server A și Server B care trebuie adăugat la cluster, lansați comenzile de mai jos
sh.addShard("ServerA:27017")sh.addShard("ServerB:27017")
Pasul 6) Activați partajarea pentru baza de date. Deci, dacă trebuie să împărțim baza de date Employeedb, lansați comanda de mai jos
sh.enableSharding(Employeedb)
Pasul 7) Activați partajarea pentru colecție. Deci, dacă trebuie să împărțim colecția angajaților, lansați comanda de mai jos
Sh.shardCollection("db.Employee" , { "Employeeid" : 1 , "EmployeeName" : 1})
Rezumat:
- Așa cum s-a explicat în tutorial, Sharding este un concept în MongoDB, care împarte seturi mari de date în seturi mici de date în mai multe instanțe MongoDB.