Национальный цифровой ресурс Руконт - межотраслевая электронная библиотека (ЭБС) на базе технологии Контекстум (всего произведений: 639001)
Контекстум
Электро-2024

MongoDB: полное руководство. Мощная и масштабируемая система управления базами данных (5000,00 руб.)

0   0
Первый авторБрэдшоу
АвторыХодоров К.
ИздательствоМ.: ДМК Пресс
Страниц542
ID794577
АннотацияЭта книга представляет собой исчерпывающее руководство по работе с MongoDB 4.2 — мощной документоориентированной системой управления базами данных. Авторы, внесшие личный вклад в создание и развитие MongoDB, начинают описание системы с самых азов (история создания, базовая терминология) и постепенно переходят к более сложным темам (выполнение запросов, индексация, агрегирование, транзакции, наборы реплик, управление операциями, шардинг и администрирование данных, долговечность, мониторинг и безопасность). Читатель получит конкретные советы по написанию приложения, которое хорошо работает с MongoDB, выяснит, какие системные настройки следует учитывать при ее развертывании и как устанавливать MongoDB в Windows, OS X и Linux. Издание предназначено для разработчиков объемных баз данных, масштабирование которых является одной из приоритетных задач.
ISBN978-5-97060-792-3
УДК4.65
ББК32.972.134
Брэдшоу, Ш. MongoDB: полное руководство. Мощная и масштабируемая система управления базами данных / К. Ходоров; Ш. Брэдшоу .— Москва : ДМК Пресс, 2020 .— 542 с. — ISBN 978-5-97060-792-3 .— URL: https://rucont.ru/efd/794577 (дата обращения: 17.06.2024)

Предпросмотр (выдержки из произведения)

MongoDB_полное_руководство._Мощная_и_масштабируемая_система_управления_базами_данных.pdf
Стр.5
Стр.7
Стр.8
Стр.9
Стр.10
Стр.11
Стр.12
Стр.13
Стр.14
Стр.15
Стр.16
MongoDB_полное_руководство._Мощная_и_масштабируемая_система_управления_базами_данных.pdf
УДК 004.65 ББК 32.972.134 Б87 Б87 Шеннон Брэдшоу, Йон Брэзил, Кристина Ходоров MongoDB: полное руководство. Мощная и масштабируемая система управления базами данных / пер. с англ. Д. А. Беликова – М.: ДМК Пресс, 2020. – 540 с.: ил. ISBN 978-5-97060-792-3 Эта книга представляет собой исчерпывающее руководство по работе с MongoDB 4.2 – мощной документоориентированной системой управления базами данных. Авторы, внесшие личный вклад в создание и развитие MongoDB, начинают описание системы с самых азов (история создания, базовая терминология) и постепенно переходят к более сложным темам (выполнение запросов, индексация, агрегирование, транзакции, наборы реплик, управление операциями, шардинг и администрирование данных, долговечность, мониторинг и безопасность). Читатель получит конкретные советы по написанию приложения, которое хорошо работает с MongoDB, выяснит, какие системные настройки следует учитывать при ее развертывании и как устанавливать MongoDB в Windows, OS X и Linux. Издание предназначено для разработчиков объемных баз данных, масштабирование которых является одной из приоритетных задач. УДК 004.65 ББК 32.972.134 Original English language edition published by O’Reilly Media, Inc. Copyright © 2020 Shannon Bradshaw and Eoin Brazil. All rights reserved. Russian-language edition copyright © 2020 by DMK Press. All rights reserved. Все права защищены. Любая часть этой книги не может быть воспроизведена в какой бы то ни было форме и какими бы то ни было средствами без письменного разрешения владельцев авторских прав. Материал, изложенный в данной книге, многократно проверен. Но, поскольку вероятность технических ошибок все равно существует, издательство не может гарантировать абсолютную точность и правильность приводимых сведений. В связи с этим издательство не несет ответственности за возможные ошибки, связанные с использованием книги. ISBN 978-1-49195-446-1 (англ.) © 2020 Shannon Bradshaw and Eoin Brazil. All rights reserved. ISBN 978-5-97060-792-3 (рус.) © Оформление, перевод на русский язык, издание, ДМК Пресс, 2020
Стр.5
Оглавление Предисловие ..................................................................................................... 16 Как устроена эта книга ...................................................................................16 Начало работы с MongoDB .............................................................................16 Разработка с MongoDB ...................................................................................16 Репликация .....................................................................................................16 Шардинг ..........................................................................................................17 Администрирование приложений ................................................................17 Администрирование сервера ........................................................................17 Приложения ....................................................................................................17 Обозначения, принятые в этой книге ...........................................................17 Использование примеров кода .....................................................................18 Обучение в режиме онлайн ..........................................................................19 Предисловие от издательства ....................................................................... 20 Отзывы и пожелания ......................................................................................20 Список опечаток .............................................................................................20 Нарушение авторских прав ...........................................................................20 Часть I Введение в MongoDB ...................................................................................21 Глава 1. Введение ............................................................................................. 22 Простота использования .......................................................................... 22 Разработана для масштабирования......................................................... 22 Богатство функций… ................................................................................ 24 …Без ущерба для скорости ....................................................................... 25 Философия ................................................................................................. 25 Глава 2. Начало работы ................................................................................... 26 Документы ................................................................................................. 26 Коллекции .................................................................................................. 27 Динамические схемы .....................................................................................28 Именование ....................................................................................................29 Базы данных .............................................................................................. 30 Начало работы с MongoDB ....................................................................... 31 Знакомство с оболочкой MongoDB .......................................................... 32 Запуск оболочки .............................................................................................33 Клиент MongoDB.............................................................................................34 Основные операции с оболочкой ..................................................................35
Стр.7
Оглавление  7 Типы данных ............................................................................................. 37 Основные типы данных .................................................................................37 Даты .................................................................................................................39 Массивы ..........................................................................................................40 Вложенные документы ..................................................................................40 _id и ObjectId ...................................................................................................41 Использование оболочки MongoDB ......................................................... 43 Советы по использованию оболочки ............................................................44 Запуск скриптов с помощью оболочки .........................................................45 Создание файла .mongorc.js ..........................................................................47 Настройка приглашения ................................................................................48 Редактирование сложных переменных ........................................................49 Неудобные имена коллекций ........................................................................50 Глава 3. Создание, обновление и удаление документов ........................... 52 Вставка документов .................................................................................. 52 insertMany .......................................................................................................52 Проверка вставки ...........................................................................................56 insert ................................................................................................................56 Удаление документов ............................................................................... 56 drop .................................................................................................................58 Обновление документов .......................................................................... 58 Замена документа ..........................................................................................59 Использование операторов обновления ......................................................61 Upsert ...............................................................................................................72 Обновление нескольких документов ............................................................75 Возврат обновленных документов ................................................................76 Глава 4. Выполнение запросов ...................................................................... 79 Знакомство с методом find ....................................................................... 79 Указываем, какие ключи нужно вернуть ......................................................80 Ограничения ...................................................................................................81 Критерии запроса ..................................................................................... 81 Условные операторы ......................................................................................81 Запросы с оператором OR ..............................................................................82 $not .................................................................................................................83 Запросы для определенных типов ........................................................... 84 null .................................................................................................................84 Регулярные выражения ..................................................................................84 Запросы элементов массива ..........................................................................85 Запросы по вложенным документам ............................................................91 Операторы $where .................................................................................... 93 Курсоры ...................................................................................................... 94 Ограничения, пропуск и сортировка ............................................................95
Стр.8
8  Оглавление Избегайте больших пропусков ......................................................................97 Бесконечные курсоры ...................................................................................99 Часть II Разработка приложения ............................................................................101 Глава 5. Индексы ............................................................................................ 102 Знакомство с индексами .........................................................................102 Создание индекса .........................................................................................105 Знакомство с составными индексами ........................................................108 Как MongoDB выбирает индекс ...................................................................112 Использование составных индексов ...........................................................114 Как операторы с символом $ используют индексы ...................................135 Индексирование объектов и массивов .......................................................147 Кардинальность индекса .............................................................................150 Вывод explain............................................................................................150 Когда не стоит прибегать к индексированию ........................................160 Типы индексов .........................................................................................161 Уникальные индексы ...................................................................................161 Частичные индексы ......................................................................................164 Управление индексами............................................................................165 Идентификация индексов ...........................................................................166 Замена индексов ...........................................................................................167 Глава 6. Специальные типы индексов и коллекций ................................. 168 Геопространственные индексы ..............................................................168 Типы геопространственных запросов ........................................................169 Использование геопространственных индексов .......................................171 Составные геопространственные индексы ................................................179 Индексы 2d ....................................................................................................179 Индексы для полнотекстового поиска ...................................................182 Создание текстового индекса ......................................................................183 Поиск по тексту.............................................................................................184 Оптимизация полнотекстового поиска ......................................................187 Поиск на других языках ...............................................................................188 Ограниченные коллекции .......................................................................188 Создание ограниченных коллекций ...........................................................190 Настраиваемые курсоры ..............................................................................191 Индексы TTL .............................................................................................192 Хранение файлов с помощью GridFS ......................................................193 Начало работы с GridFS: mongofiles ............................................................193 Работа с GridFS из драйверов MongoDB ......................................................194 Что под капотом ...........................................................................................195
Стр.9
Оглавление  9 Глава 7. Знакомство с фреймворком агрегации ....................................... 198 Конвейеры, этапы и настраиваемые параметры ...................................198 Начало работы с этапами: знакомые операции ....................................200 Выражения ...............................................................................................206 $project ......................................................................................................207 $unwind .....................................................................................................213 Выражения массивов ...............................................................................221 Аккумуляторы ..........................................................................................227 Использование аккумуляторов в этапах с $project ....................................228 Знакомство с группировкой ....................................................................229 Поле _id в этапах $group ...............................................................................235 Сравнение $group и $project ........................................................................238 Запись результатов конвейера агрегации в коллекцию .......................241 Глава 8. Транзакции ....................................................................................... 243 Знакомство с транзакциями ...................................................................243 Определение ACID ........................................................................................244 Как использовать транзакции .................................................................244 Настройка ограничений транзакций для вашего приложения ............249 Ограничения на размер журнала операций и ограничения по времени ...249 Глава 9. Разработка приложений ................................................................ 251 Аспекты проектирования схем ...............................................................251 Шаблоны проектирования схем ..................................................................253 Нормализация и денормализация..........................................................256 Примеры представления данных ................................................................257 Кардинальность ............................................................................................262 Друзья, подписчики и другие неудобства ...................................................262 Оптимизация манипулирования данными ...........................................265 Удаление старых данных .............................................................................265 Планирование баз данных и коллекций ................................................266 Управление согласованностью................................................................267 Перенос схем ............................................................................................269 Управление схемами ...............................................................................270 Когда не стоит использовать MongoDB ..................................................270 Часть III Репликация....................................................................................................271 Глава 10. Настройка набора реплик ........................................................... 272 Знакомство с репликацией .....................................................................272
Стр.10
10  Оглавление Настройка набора реплик, часть 1 ..........................................................273 Пара слов касательно работы в сети .......................................................274 Вопросы безопасности ............................................................................275 Настройка набора реплик, часть 2 ..........................................................275 Наблюдение за репликацией ..................................................................279 Изменение настройки набора реплик ....................................................285 Проектирование набора ..........................................................................287 Как работают выборы ...................................................................................289 Параметры конфигурации членов..........................................................291 Приоритет .....................................................................................................291 Скрытые члены .............................................................................................291 Арбитры ........................................................................................................292 Построение индексов ...................................................................................295 Глава 11. Компоненты набора реплик ....................................................... 296 Синхронизация ........................................................................................296 Начальная синхронизация ..........................................................................298 Репликация ...................................................................................................300 Работа с устареванием данных ....................................................................300 Тактовые сигналы ....................................................................................301 Состояния членов .........................................................................................301 Выборы .....................................................................................................303 Откаты ......................................................................................................304 Когда откаты не работают ............................................................................307 Глава 12. Подключение к набору реплик из своего приложения.......... 308 Как ведет себя соединение типа «клиент к набору реплик» .................308 Ожидание репликации при операциях записи .....................................311 Другие параметры для "w" ...........................................................................313 Гарантии специализированной репликации .........................................313 По одному серверу на каждый центр обработки данных ..........................313 Гарантия большинства нескрытых членов .................................................315 Создание других гарантий ...........................................................................316 Отправка операций чтения на вторичные узлы ...................................316 Соображения по поводу согласованности ..................................................317 Вопросы нагрузки .........................................................................................317 Причины чтения с вторичных узлов ...........................................................318 Глава 13. Администрирование ..................................................................... 320 Запуск членов в автономном режиме ....................................................320 Конфигурация набора реплик .................................................................321 Создание набора реплик ..............................................................................321
Стр.11
Оглавление  11 Изменение членов набора ...........................................................................322 Создание более крупных наборов ...............................................................323 Принудительное переконфигурирование ..................................................323 Управление состоянием членов ..............................................................324 Превращение первичных узлов во вторичные ..........................................324 Предотвращение выборов ...........................................................................324 Мониторинг репликации ........................................................................325 Получение статуса ........................................................................................325 Визуализация графика репликации ............................................................329 Циклы репликации .......................................................................................330 Отключение цепочки ...................................................................................331 Расчет величины отставания .......................................................................331 Изменение размера журнала операций .....................................................333 Построение индексов ...................................................................................334 Бюджетная репликация ...............................................................................335 Часть IV Шардинг .........................................................................................................337 Глава 14. Знакомство с шардингом ............................................................. 338 Что такое шардинг? .................................................................................338 Разбираемся с компонентами кластера .....................................................339 Настройка кластера на одной машине ...................................................340 Глава 15. Конфигурирование шардинга .................................................... 352 Когда использовать шардинг ..................................................................352 Запуск серверов ........................................................................................353 Конфигурационные серверы .......................................................................353 Процессы mongos .........................................................................................355 Добавление шарда из набора реплик ..........................................................355 Добавляем емкости ......................................................................................360 Шардинг данных ...........................................................................................360 Диапазоны чанков ........................................................................................362 Расщепление чанков ....................................................................................364 Балансировщик ........................................................................................366 Сличения ..................................................................................................367 Потоки изменений ...................................................................................368 Глава 16. Выбор ключа шардинга ............................................................... 369 Подводя итоги использования ................................................................369 Иллюстрация распределений .................................................................370 Монотонно возрастающие ключи ...............................................................370 Случайно распределенные ключи ...............................................................373 Ключи с привязкой к местоположению пользователя ..............................375
Стр.12
12  Оглавление Стратегии..................................................................................................377 Хешированные ключи шардинга ................................................................377 Хешированные ключи шардинга для GridFS ..............................................379 Стратегия «пожарного шланга» ...................................................................380 Несколько хот-спотов ...................................................................................381 Правила и рекомендации ........................................................................382 Ограничения .................................................................................................383 Кардинальность ............................................................................................384 Управление распределением данных .....................................................385 Использование кластера для нескольких баз данных и коллекций .........385 Ручной шардинг............................................................................................387 Глава 17. Администрирование шардинга ................................................... 389 Просмотр текущего состояния ................................................................389 Получение сводки с помощью функции sh.status() ...................................389 Просмотр информации о конфигурации ...................................................392 Отслеживание сетевых подключений ....................................................399 Получение статистики о соединениях ........................................................399 Ограничение числа соединений..................................................................407 Администрирование сервера ..................................................................408 Добавление серверов ...................................................................................408 Смена серверов в шарде ..............................................................................409 Удаление шарда ............................................................................................409 Балансировка данных ..............................................................................413 Балансировщик.............................................................................................413 Изменение размера чанков .........................................................................415 Перемещение чанков ...................................................................................416 Неразделимые чанки ...................................................................................418 Обновление конфигураций .........................................................................421 Часть V Администрирование приложений..................................................... 423 Глава 18. Смотрим, что делает ваше приложение .................................... 424 Просмотр текущих операций ..................................................................424 Поиск проблемных операций ......................................................................428 Ложные срабатывания .................................................................................429 Предотвращение фантомных операций .....................................................429 Использование системного профилировщика ......................................430 Вычисление размеров .............................................................................434 Документы ....................................................................................................434 Коллекции .....................................................................................................434 Базы данных .................................................................................................440 Использование утилит mongotop и mongostat ......................................441
Стр.13
Оглавление  13 Глава 19. Обеспечение безопасности в MongoDB .................................... 444 Аутентификация и авторизация в MongoDB .........................................444 Механизмы аутентификации ......................................................................444 Авторизация .................................................................................................445 Использование сертификатов x.509 для аутентификации членов и клиентов ............................................................................................447 Руководство по аутентификации в MongoDB и шифрованию на транспортном уровне ....................................................................450 Создание центра сертификации .................................................................450 Создание и подпись сертификатов членов ................................................456 Генерация и подписание клиентских сертификатов .................................457 Создание набора реплик без включенной аутентификации и авторизации ......................................................................................457 Создание пользователя с правами администратора .................................458 Перезапуск набора реплик с включенной аутентификацией и авторизацией .....................................................................................459 Глава 20. Долговечность ............................................................................... 462 Долговечность на уровне членов с помощью журналирования ...........462 Долговечность на уровне кластера при использовании гарантии записи .................................................................................464 Опции w и wtimeout для параметра writeConcern .....................................464 Опция j (ведение журнала) для параметра writeConcern ..........................465 Долговечность на уровне кластера при использовании гарантии чтения .................................................................................466 Долговечность транзакций с использованием гарантии записи .........467 Чего MongoDB не гарантирует ................................................................468 Проверка на предмет наличия повреждений ........................................468 Часть VI Администрирование сервера ..................................................................471 Глава 21. Настройка MongoDB в рабочем окружении ............................. 472 Запуск из командной строки...................................................................472 Конфигурирование на базе файлов ............................................................477 Остановка MongoDB ................................................................................478 Шифрование данных ....................................................................................480 SSL-соединения ............................................................................................481 Протоколирование ...................................................................................481 Глава 22. Мониторинг MongoDB .................................................................. 483 Мониторинг использования памяти ......................................................483 Знакомство с памятью компьютера ............................................................483
Стр.14
14  Оглавление Отслеживание использования памяти .......................................................484 Отслеживание отказов страницы ................................................................485 Время ожидания ввода/вывода ...................................................................487 Вычисление рабочего множества ...........................................................487 Примеры рабочего множества ....................................................................488 Отслеживание производительности ......................................................489 Отслеживание свободного пространства ...............................................491 Мониторинг репликации ........................................................................491 Глава 23. Создание резервных копий ......................................................... 495 Методы резервного копирования ...........................................................495 Резервное копирование сервера .............................................................496 Снимок файловой системы .........................................................................496 Копирование файлов данных ......................................................................500 Использование mongodump.........................................................................502 Особые факторы при копировании наборов реплик ............................505 Особые факторы при копировании разделенного кластера ................506 Резервное копирование и восстановление всего кластера .......................507 Резервное копирование и восстановление одного шарда ........................507 Глава 24. Развертывание MongoDB ............................................................ 508 Проектирование системы .......................................................................508 Выбор носителя для хранения .....................................................................508 Рекомендуемые уровни спецификации RAID ............................................509 Центральный процессор ..............................................................................510 Операционная система ................................................................................510 Объем подкачки ...........................................................................................511 Файловая система .........................................................................................512 Виртуализация .........................................................................................512 Избыточное выделение памяти ..................................................................512 Таинственная память ...................................................................................513 Обработка проблем ввода/вывода сетевого диска .....................................513 Использование несетевых дисков ...............................................................514 Конфигурирование настроек системы ...................................................515 Отключение архитектуры неравномерного доступа к памяти .................515 Упреждающее чтение ...................................................................................517 Отключение THP ..........................................................................................518 Выбор алгоритма планирования .................................................................519 Отключаем отслеживание времени доступа ..............................................520 Изменение ограничений .............................................................................520 Конфигурирование сети ..........................................................................522 Наводим порядок в системе ....................................................................524 Синхронизация часов ..................................................................................524
Стр.15
Оглавление  15 OOM Killer .....................................................................................................524 Отключите периодические задачи .............................................................525 Приложение А. Установка MongoDB ........................................................... 526 Выбор версии ...........................................................................................526 Установка в Windows ................................................................................527 Установка в качестве службы .......................................................................528 Установка в POSIX (Linux и Mac OS X) ....................................................528 Установка из диспетчера пакетов ...............................................................529 Приложение B. Внутреннее устройство MongoDB ................................... 531 BSON .........................................................................................................531 Проводной протокол ................................................................................532 Файлы данных ..........................................................................................532 Пространства имен ..................................................................................535 Подсистема хранения WiredTiger ...........................................................535 Об авторах ...................................................................................................... 536 Об изображении на обложке ....................................................................... 537 Предметный указатель ................................................................................. 538
Стр.16

Облако ключевых слов *


* - вычисляется автоматически
Периодика по подписке
Антиплагиат система Руконтекст