Монгодб кластер - импортирует миллиарды записей

Я пытаюсь импортировать 10 миллиардов записей. Началось тестирование с импортом 1 миллиарда записей. Время импорта ухудшается по мере вставки записей. Вот конфигурации и статистика.

Mongo db version - 3.4
Documents - 1226592923
Routers(m4.xlarge) 2 
Config 3
Nodes(i3.large,15GB nvme ssd)  Import time(hrs)
5                              14:30:00
10                             8:10:00

Каждый документ имеет около 7 полей. Шард ключ на 3 поля. Выполнены все рекомендации по адресу https://docs.mongodb.com/v3.4/reference/ulimit/.

Варианты импорта

--writeConcern '{ w: 0, j: false }'
--numInsertionWorkers 8

Даже попробовал отключить журнал (--nojournal), но особой разницы нет.

Не уверен, что это ожидаемое время импорта. Или я могу сделать что-нибудь еще, чтобы улучшить скорость приема пищи?

1 ответ

Вот некоторые из факторов, которые сделали много улучшений в импорте

  1. Предварительное расщепление
  2. Сортировка данных
  3. Отключение балансировщика sh.stopBalancer()
  4. Отключение автоматического разделения во время загрузки (sh.disableAutoSplit() или перезапустите mongos без --noAutoSplit)
  5. Индексирование после загрузки полных данных

Рекомендации:

  1. https://blog.zawodny.com/2011/03/06/mongodb-pre-splitting-for-faster-data-loading-and-importing/
  2. /questions/7701305/kak-programmno-predvaritelno-razdelit-klyuch-shard-na-osnove-guid-s-mongodb/7701312#7701312
Другие вопросы по тегам