MongoDB Sharding: samouczek krok po kroku z przykładem
W czym jest Sharding MongoDB?
Sharding to koncepcja w MongoDB, który dzieli duże zbiory danych na małe zbiory danych w wielu zbiorach MongoDB instancje.
Czasami dane wewnątrz MongoDB będzie tak duży, że zapytania dotyczące tak dużych zbiorów danych mogą powodować duże obciążenie procesora serwera. Aby zaradzić tej sytuacji, MongoDB ma koncepcję Shardingu, która polega w zasadzie na dzieleniu zestawów danych na wiele MongoDB instancje.
Kolekcja, która może mieć duży rozmiar, jest w rzeczywistości podzielona na wiele kolekcji lub fragmentów, jak się je nazywa. Logicznie rzecz biorąc, wszystkie odłamki działają jako jedna kolekcja.
Jak wdrożyć sharding
Fragmenty są implementowane przy użyciu klastrów, które są niczym innym, jak grupą MongoDB instancje.
Składniki Shard obejmują
- Tak ciężko – To jest rzecz podstawowa i to jest nic innego jak MongoDB instancja, która przechowuje podzbiór danych. W środowiskach produkcyjnych wszystkie fragmenty muszą należeć do zestawów replik.
- Serwer konfiguracyjny – Jest to instancja mongodb przechowująca metadane dotyczące klastra, zasadniczo informacje o różnych instancjach mongodb, które będą przechowywać dane fragmentów.
- Router – Jest to instancja mongodb, której zasadniczym zadaniem jest przekierowywanie poleceń wysyłanych przez klienta do odpowiednich serwerów.
Dzielenie na kawałki krok po kroku Cluster Przykład
Krok 1) Utwórz oddzielną bazę danych dla serwera konfiguracji.
mkdir /data/configdb
Krok 2) Uruchom instancję mongodb w trybie konfiguracji. Załóżmy, że mamy serwer o nazwie Server 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 bazy danych. Jeśli więc musimy podzielić bazę danych Employeedb, wydaj poniższe polecenie
sh.enableSharding(Employeedb)
Krok 7) Włącz fragmentowanie kolekcji. Jeśli więc musimy podzielić kolekcję Pracowników, wydaj poniższe polecenie
Sh.shardCollection("db.Employee" , { "Employeeid" : 1 , "EmployeeName" : 1})
Podsumowanie:
- Jak wyjaśniono w Tutorial, Sharding to koncepcja w MongoDB, który dzieli duże zbiory danych na małe zbiory danych w wielu zbiorach MongoDB instancje.