Учебники

17) Sharding

Что такое шардинг в MongoDB?

Sharding — это концепция MongoDB, которая разбивает большие наборы данных на небольшие наборы данных в нескольких экземплярах MongoDB.

Иногда данные в MongoDB могут быть такими огромными, что запросы к таким большим наборам данных могут вызвать большую загрузку ЦП на сервере. Чтобы справиться с этой ситуацией, MongoDB имеет концепцию Sharding, которая заключается в разделении наборов данных между несколькими экземплярами MongoDB.

Коллекция, которая может быть большой по размеру, фактически разделена на несколько коллекций или осколков, как их называют. Логически все осколки работают как одна коллекция.

Как реализовать шардинг

Осколки реализуются с помощью кластеров, которые представляют собой не что иное, как группу экземпляров MongoDB.

Компоненты осколка включают

  1. Осколок — это основная вещь, и это не что иное, как экземпляр MongoDB, который содержит подмножество данных. В производственных средах все осколки должны быть частью наборов реплик.
  2. Сервер конфигурации — это экземпляр mongodb, который содержит метаданные о кластере, в основном информацию о различных экземплярах mongodb, которые будут содержать данные сегмента.
  3. Маршрутизатор — это экземпляр mongodb, который в основном отвечает за перенаправление команд, отправляемых клиентом, на нужные серверы.

Шаг за шагом Пример Sharding Cluster

Шаг 1) Создайте отдельную базу данных для сервера конфигурации.

mkdir /data/configdb

Шаг 2) Запустите экземпляр mongodb в режиме конфигурации. Предположим, что если у нас есть сервер с именем Сервер D, который будет нашим сервером конфигурации, нам нужно будет выполнить приведенную ниже команду, чтобы настроить сервер в качестве сервера конфигурации.

mongod –configdb ServerD: 27019

Шаг 3) Запустите экземпляр mongos, указав сервер конфигурации

mongos –configdb ServerD: 27019

Шаг 4) Из оболочки монго подключитесь к экземпляру монго

mongo –host ServerD –port 27017

Шаг 5) Если у вас есть сервер A и сервер B, которые необходимо добавить в кластер, выполните следующие команды

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

Шаг 6) Включить шардинг для базы данных. Так что, если нам нужно разделить базу данных Employeedb, введите команду ниже

sh.enableSharding(Employeedb)

Шаг 7) Включите шардинг для коллекции. Поэтому, если нам нужно осквернить коллекцию Employee, введите команду ниже

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

Резюме:

  • Как объяснено в руководстве, Sharding — это концепция в MongoDB, которая разбивает большие наборы данных на небольшие наборы данных в нескольких экземплярах MongoDB.