MongoDB Sharding: samouczek krok po kroku z przykładem

Spisie treści:

Anonim

Co to jest fragmentowanie w MongoDB?

Sharding to koncepcja w MongoDB, która dzieli duże zestawy danych na małe zestawy danych w wielu wystąpieniach MongoDB.

Czasami dane w MongoDB będą tak ogromne, że zapytania dotyczące takich dużych zbiorów danych mogą powodować duże obciążenie procesora na serwerze. Aby poradzić sobie z tą sytuacją, MongoDB ma koncepcję Sharding, która w zasadzie polega na dzieleniu zestawów danych na wiele instancji MongoDB.

Kolekcja, która może mieć duży rozmiar, jest w rzeczywistości dzielona na wiele kolekcji lub odłamków, jak się nazywają. Logicznie rzecz biorąc, wszystkie fragmenty działają jako jedna kolekcja.

Jak zaimplementować fragmentację

Shardy są implementowane przy użyciu klastrów, które są niczym innym jak grupą instancji MongoDB.

Składniki Shard obejmują

  1. A Shard - to podstawowa rzecz, a to nic innego jak instancja MongoDB, która przechowuje podzbiór danych. W środowiskach produkcyjnych wszystkie fragmenty muszą być częścią zestawów replik.
  2. Serwer konfiguracji - jest to instancja mongodb, która przechowuje metadane dotyczące klastra, w zasadzie informacje o różnych instancjach mongodb, które będą przechowywać dane fragmentu.
  3. Router - jest to instancja mongodb, która zasadniczo jest odpowiedzialna za przekierowanie poleceń wysyłanych przez klienta na właściwe serwery.

Przykład klastra Sharding Step by Step

Krok 1) Utwórz oddzielną bazę danych dla serwera konfiguracji.

mkdir /data/configdb

Krok 2) Uruchom instancję mongodb w trybie konfiguracji. Załóżmy, że jeśli mamy serwer o nazwie Serwer D, który byłby naszym serwerem konfiguracji, musielibyśmy uruchomić poniższe polecenie, aby skonfigurować serwer jako serwer konfiguracji.

mongod -configdb ServerD: 27019

Krok 3) Uruchom instancję mongos, określając serwer konfiguracji

mongos -configdb ServerD: 27019

Krok 4) Z powłoki mongo połącz się z instancją mongo

mongo -host ServerD -port 27017

Krok 5) Jeśli masz serwer A i serwer B, które należy dodać do klastra, wydaj poniższe polecenia

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

Krok 6) Włącz fragmentowanie dla bazy danych. Więc jeśli potrzebujemy shardować bazę danych Employeedb, wydaj poniższe polecenie

sh.enableSharding(Employeedb)

Krok 7) Włącz fragmentowanie dla kolekcji. Jeśli więc musimy odłamać kolekcję Employee, wydaj poniższe polecenie

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

Podsumowanie:

  • Jak wyjaśniono w samouczku, dzielenie na fragmenty to koncepcja w MongoDB, która dzieli duże zestawy danych na małe zestawy danych w wielu instancjach MongoDB.