MongoDB Шардинг: пошаговое руководство с примером
Что такое шардинг MongoDB?
Шардинг — это концепция, MongoDB, который разбивает большие наборы данных на небольшие наборы данных по нескольким MongoDB экземпляров.
Иногда данные внутри MongoDB будет настолько огромным, что запросы к таким большим наборам данных могут вызвать большую загрузку ЦП на сервере. Чтобы справиться с этой ситуацией, MongoDB имеет концепцию шардинга, которая, по сути, представляет собой разделение наборов данных на несколько MongoDB экземпляров.
Коллекция, которая может быть большой по размеру, на самом деле разделена на несколько коллекций или осколков, как их называют. Логически все шарды работают как одна коллекция.
Как реализовать шардинг
Шарды реализуются с помощью кластеров, которые представляют собой не что иное, как группу MongoDB экземпляров.
Компоненты шарда включают в себя
- Осколок – Это основная вещь, и это не что иное, как MongoDB экземпляр, который содержит подмножество данных. В производственных средах все сегменты должны быть частью наборов реплик.
- Сервер конфигурации – Это экземпляр mongodb, который содержит метаданные о кластере, в основном информацию о различных экземплярах mongodb, которые будут хранить данные сегментов.
- Маршрутизатор – Это экземпляр mongodb, который по сути отвечает за перенаправление команд, отправляемых клиентом, на нужные серверы.
Пошаговое шардинг Cluster Пример
Шаг 1) Создайте отдельную базу данных для сервера конфигурации.
mkdir /data/configdb
Шаг 2) Запустите экземпляр mongodb в режиме конфигурации. Предположим, что если у нас есть сервер с именем Сервер 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) Включите сегментирование базы данных. Итак, если нам нужно сегментировать базу данных Workerdb, введите следующую команду:
sh.enableSharding(Employeedb)
Шаг 7) Включите сегментирование для коллекции. Итак, если нам нужно сегментировать коллекцию сотрудников, введите следующую команду:
Sh.shardCollection("db.Employee" , { "Employeeid" : 1 , "EmployeeName" : 1})
Резюме:
- Как пояснили в учебник, Шардинг — это концепция в MongoDB, который разбивает большие наборы данных на небольшие наборы данных по нескольким MongoDB экземпляров.