MongoDB Sharding: Výukový program krok za krokom s príkladom

Obsah:

Anonim

Čo je to zdieľanie v MongoDB?

Sharding je koncept v MongoDB, ktorý rozdeľuje veľké množiny údajov na malé množiny údajov vo viacerých inštanciách MongoDB.

Niekedy budú dáta v rámci MongoDB také obrovské, že dotazy na také veľké množiny dát môžu spôsobiť veľké využitie procesora na serveri. Na riešenie tejto situácie má MongoDB koncept Sharding, čo je v podstate rozdelenie množín údajov medzi viaceré inštancie MongoDB.

Zbierka, ktorá môže byť veľká, je v skutočnosti rozdelená do viacerých zbierok alebo črepov, ako sa nazývajú. Logicky všetky črepy fungujú ako jedna kolekcia.

Ako implementovať rozdelenie

Črepy sa implementujú pomocou klastrov, ktoré nie sú ničím iným ako skupinou inštancií MongoDB.

Medzi komponenty Shard patria

  1. Črep - Toto je základná vec a nejde o nič iné ako inštanciu MongoDB, ktorá obsahuje podmnožinu údajov. V produkčných prostrediach musia byť všetky zlomky súčasťou replík.
  2. Konfiguračný server - Toto je inštancia mongodb, ktorá obsahuje metaúdaje o klastri, v podstate informácie o rôznych inštanciách mongodb, ktoré budú obsahovať údaje o zlomku.
  3. Router - Toto je inštancia mongodb, ktorá je v zásade zodpovedná za presmerovanie príkazov odoslaných klientom na správne servery.

Príklad zhluku s rozdelením na krok za krokom

Krok 1) Vytvorte samostatnú databázu pre konfiguračný server.

mkdir /data/configdb

Krok 2) Spustite inštanciu mongodb v konfiguračnom režime. Predpokladajme, že ak máme server s názvom Server D, ktorý by bol naším konfiguračným serverom, na konfiguráciu servera ako konfiguračného servera by sme museli spustiť nasledujúci príkaz.

mongod -configdb ServerD: 27019

Krok 3) Spustite inštanciu mongos zadaním konfiguračného servera

mongos -configdb ServerD: 27019

Krok 4) Z shellu mongo sa pripojte k inštancii mongo

mongo -host ServerD -port 27017

Krok 5) Ak máte server A a server B, ktoré je potrebné pridať do klastra, zadajte nasledujúce príkazy

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

Krok 6) Povoľte zdieľanie údajov pre databázu. Takže ak potrebujeme rozdeliť databázu Employeedb, zadajte nasledujúci príkaz

sh.enableSharding(Employeedb)

Krok 7) Povoľte zdieľanie dát. Takže ak potrebujeme rozdeliť kolekciu Employee, zadajte nasledujúci príkaz

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

Zhrnutie:

  • Ako je vysvetlené v tutoriále, Sharding je koncept v MongoDB, ktorý rozdeľuje veľké množiny údajov na malé množiny údajov vo viacerých inštanciách MongoDB.