„MongoDB Sharding“: žingsnis po žingsnio pamoka su pavyzdžiu

Turinys:

Anonim

Kas yra skaldymas „MongoDB“?

„Sharding“ yra „MongoDB“ koncepcija, kuri padalija didelius duomenų rinkinius į mažus duomenų rinkinius keliuose „MongoDB“ egzemplioriuose.

Kartais „MongoDB“ duomenys bus tokie didžiuliai, kad užklausos dėl tokių didelių duomenų rinkinių gali sukelti daug procesoriaus naudojimo serveryje. Norėdami išspręsti šią situaciją, „MongoDB“ turi „Sharding“ koncepciją, kuri iš esmės yra duomenų rinkinių skaidymas keliuose „MongoDB“ egzemplioriuose.

Kolekcija, kurios dydis gali būti didelis, iš tikrųjų yra padalinta į kelias kolekcijas arba „Shards“, kaip jie vadinami. Logiška, kad visos šukės veikia kaip viena kolekcija.

Kaip įdiegti dalijimąsi

Skaldos įgyvendinamos naudojant klasterius, kurie yra ne kas kita, o „MongoDB“ egzempliorių grupė.

Į „Shard“ komponentus įeina

  1. Skalda - tai yra pagrindinis dalykas, ir tai yra ne kas kita, o „MongoDB“ egzempliorius, kuriame laikomas duomenų pogrupis. Gamybos aplinkoje visos skeveldros turi būti replikų rinkinių dalis.
  2. „Config server“ - tai „mongodb“ egzempliorius, kuriame yra metaduomenys apie klasterį, iš esmės informacija apie įvairius „mongodb“ egzempliorius, kurie laikys šukės duomenis.
  3. Maršrutizatorius - tai mongodb egzempliorius, kuris iš esmės yra atsakingas už kliento siunčiamų komandų peradresavimą į tinkamus serverius.

Žingsnis po žingsnio dalijant klasterio pavyzdį

1 žingsnis. Sukurkite atskirą konfigūracijos serverio duomenų bazę.

mkdir /data/configdb

2 žingsnis) Paleiskite „mongodb“ egzempliorių konfigūracijos režimu. Tarkime, jei turime serverį pavadinimu „Server D“, kuris būtų mūsų konfigūracijos serveris, turėtume paleisti žemiau esančią komandą, kad sukonfigūruotume serverį kaip konfigūracijos serverį.

mongod -configdb ServerD: 27019

3 žingsnis. Paleiskite „mongos“ egzempliorių nurodydami konfigūracijos serverį

mongos -configdb ServerD: 27019

4 žingsnis) Iš mongo apvalkalo prijunkite prie mongo egzemplioriaus

mongo -host ServerD -port 27017

5 žingsnis) Jei turite serverį A ir serverį B, kuriuos reikia pridėti prie sankaupos, pateikite toliau nurodytas komandas

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

6 žingsnis. Įgalinkite duomenų bazės dalijimąsi. Taigi, jei mums reikia suskaidyti „Employeedb“ duomenų bazę, pateikite žemiau esančią komandą

sh.enableSharding(Employeedb)

7 veiksmas) Įgalinkite kolekcijos dalijimą. Taigi, jei mums reikia suskaidyti „Employee“ kolekciją, pateikite žemiau esančią komandą

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

Santrauka:

  • Kaip paaiškinta pamokoje, „Sharding“ yra „MongoDB“ sąvoka, kuri padalija didelius duomenų rinkinius į mažus duomenų rinkinius keliuose „MongoDB“ egzemplioriuose.