MongoDB Sharding: Tutorial pas cu pas cu exemplu

Cuprins:

Anonim

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

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