Mitä Sharding on MongoDB: ssä?
Sharding on MongoDB: n käsite, joka jakaa suuret tietojoukot pieniksi tietojoukoiksi useille MongoDB-esiintymille.
Joskus MongoDB: n tiedot ovat niin valtavia, että kyselyt tällaisia suuria tietojoukkoja vastaan voivat aiheuttaa paljon suorittimen käyttöä palvelimella. Tämän tilanteen ratkaisemiseksi MongoDB: llä on Sharding-käsite, joka on pohjimmiltaan tietojoukkojen jakaminen useille MongoDB-esiintymille.
Kokoelma, joka voi olla suuri, on jaettu useisiin kokoelmiin tai sirpaleisiin, kuten niitä kutsutaan. Loogisesti kaikki sirpaleet toimivat yhtenä kokoelmana.
Kuinka toteuttaa Sharding
Sirpaleet toteutetaan käyttämällä klustereita, jotka eivät ole muuta kuin ryhmä MongoDB-esiintymiä.
Sirun komponentit sisältävät
- Sirpale - Tämä on perusasia, eikä tämä ole mitään muuta kuin MongoDB-esiintymä, joka pitää sisällään tietojen osajoukon. Tuotantoympäristöissä kaikkien sirpaleiden on oltava osa kopiosarjoja.
- Config-palvelin - Tämä on mongodb-ilmentymä, joka pitää sisällään metadataa klusterista, pohjimmiltaan tietoa mongodb-instansseista, jotka pitävät sirun tietoja.
- Reititin - Tämä on mongodb-ilmentymä, joka on periaatteessa vastuussa asiakkaan lähettämien komentojen ohjaamisesta uudelleen oikeille palvelimille.
Vaihe vaiheelta klusteriesimerkin pilkkominen
Vaihe 1) Luo erillinen tietokanta määrityspalvelimelle.
mkdir /data/configdb
Vaihe 2) Käynnistä mongodb-ilmentymä määritystilassa. Oletetaan, että jos meillä on palvelin D nimeltä Palvelin, joka olisi määrityspalvelimemme, meidän on suoritettava alla oleva komento määrittääksesi palvelimen määrityspalvelimeksi.
mongod -configdb ServerD: 27019
Vaihe 3) Käynnistä mongos-ilmentymä määrittelemällä kokoonpanopalvelin
mongos -configdb ServerD: 27019
Vaihe 4) Yhdistä mongo-kuoresta mongon esiintymään
mongo -host ServerD -port 27017
Vaihe 5) Jos sinulla on palvelin A ja palvelin B, jotka on lisättävä klusteriin, anna alla olevat komennot
sh.addShard("ServerA:27017")sh.addShard("ServerB:27017")
Vaihe 6) Ota sirpaloituminen käyttöön tietokannalle. Joten jos meidän on pilkottava Employeedb-tietokanta, anna alla oleva komento
sh.enableSharding(Employeedb)
Vaihe 7) Ota sirpalointi käyttöön kokoelmalle. Joten jos meidän on pilkottava Employee-kokoelma, anna alla oleva komento
Sh.shardCollection("db.Employee" , { "Employeeid" : 1 , "EmployeeName" : 1})
Yhteenveto:
- Kuten opetusohjelmassa selitettiin, Sharding on MongoDB: n käsite, joka jakaa suuret tietojoukot pieniksi tietojoukoiksi useille MongoDB-esiintymille.