Какво е Sharding в MongoDB?
Sharding е концепция в MongoDB, която разделя големи набори от данни на малки набори от данни в множество екземпляри на MongoDB.
Понякога данните в MongoDB ще бъдат толкова огромни, че заявките срещу такива големи масиви от данни могат да доведат до много използване на процесора на сървъра. За да се справи с тази ситуация, MongoDB има концепция за Sharding, която е основно разделяне на набори от данни в множество екземпляри на MongoDB.
Колекцията, която може да бъде голяма по размер, всъщност се разделя на множество колекции или парчета, както се наричат. Логично всички парчета работят като една колекция.
Как да приложим Sharding
Шардовете се реализират с помощта на клъстери, които не са нищо друго освен група екземпляри на MongoDB.
Компонентите на Shard включват
- Шард - Това е основното нещо и това не е нищо друго освен екземпляр на MongoDB, който съдържа подмножеството от данни. В производствените среди всички парчета трябва да бъдат част от комплекти реплики.
- Сървър за конфигуриране - Това е екземпляр на mongodb, който съдържа метаданни за клъстера, основно информация за различните екземпляри на mongodb, които ще съдържат данните за парчета.
- Рутер - Това е екземпляр на mongodb, който основно отговаря за пренасочването на командите, изпратени от клиента към правилните сървъри.
Пример за клъстер за рязане стъпка по стъпка
Стъпка 1) Създайте отделна база данни за конфигурационния сървър.
mkdir /data/configdb
Стъпка 2) Стартирайте екземпляра mongodb в режим на конфигуриране. Да предположим, че ако имаме сървър на име Server D, който ще бъде нашият сървър за конфигуриране, ще трябва да изпълним командата по-долу, за да конфигурираме сървъра като конфигурационен сървър.
mongod -configdb ServerD: 27019
Стъпка 3) Стартирайте екземпляра на mongos, като посочите сървъра за конфигуриране
mongos -configdb ServerD: 27019
Стъпка 4) От черупката на mongo се свържете с екземпляра на mongo
mongo -host ServerD -port 27017
Стъпка 5) Ако имате сървър A и сървър B, които трябва да бъдат добавени към клъстера, издайте командите по-долу
sh.addShard("ServerA:27017")sh.addShard("ServerB:27017")
Стъпка 6) Активирайте Sharding за базата данни. Така че, ако трябва да разделим базата данни на Employeedb, издайте командата по-долу
sh.enableSharding(Employeedb)
Стъпка 7) Активирайте рязкото за колекцията. Така че, ако трябва да раздробяваме колекцията на служител, издайте командата по-долу
Sh.shardCollection("db.Employee" , { "Employeeid" : 1 , "EmployeeName" : 1})
Резюме:
- Както е обяснено в урока, Sharding е концепция в MongoDB, която разделя големи набори от данни на малки набори от данни в множество екземпляри на MongoDB.