MongoDB Шардинг: Покроковий посібник із прикладом
Що таке шардинг MongoDB?
Шардинг — це концепція в MongoDB, який розбиває великі набори даних на невеликі набори даних між кількома MongoDB екземпляри.
Іноді дані всередині MongoDB буде настільки величезним, що запити до таких великих наборів даних можуть спричинити значне використання ЦП на сервері. Щоб вирішити цю ситуацію, MongoDB має концепцію шардингу, яка в основному є розділенням наборів даних на кілька MongoDB екземпляри.
Колекція, яка може бути великого розміру, насправді розділена на кілька колекцій або фрагментів, як їх називають. Логічно всі сегменти працюють як одна колекція.
Як реалізувати шардинг
Шарди реалізуються за допомогою кластерів, які є не чим іншим, як групою MongoDB екземпляри.
Компоненти Shard включають
- Осколок – Це основне, а це не що інше, як a MongoDB екземпляр, який містить підмножину даних. У виробничих середовищах усі сегменти мають бути частиною наборів реплік.
- Конфігураційний сервер – Це екземпляр mongodb, який містить метадані про кластер, в основному інформацію про різні екземпляри mongodb, які зберігатимуть дані сегментів.
- Маршрутизатор – Це екземпляр mongodb, який в основному відповідає за перенаправлення команд, які надсилає клієнт, на потрібні сервери.
Крок за кроком шардинг Cluster Приклад
Крок 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) Увімкніть шардинг для бази даних. Отже, якщо нам потрібно розділити базу даних Employeedb, виконайте наведену нижче команду
sh.enableSharding(Employeedb)
Крок 7) Увімкнути шардинг для колекції. Отже, якщо нам потрібно розділити колекцію Employee, виконайте наведену нижче команду
Sh.shardCollection("db.Employee" , { "Employeeid" : 1 , "EmployeeName" : 1})
Основна інформація:
- Як пояснили в підручник, Шардинг — це концепція в MongoDB, який розбиває великі набори даних на невеликі набори даних між кількома MongoDB екземпляри.