Распространение создания фонового индекса MongoDB для одной установки MongoDB - PullRequest
0 голосов
/ 26 июня 2018

У меня есть установка MongoDB для одной машины, которая удовлетворяет потребности моего приложения во время выполнения, но налагает существенное узкое место во время загрузки данных, поскольку фоновая индексация в поле массива занимает несколько дней (инвертированный индекс). Кажется, это та же проблема, что и здесь Создание большого индекса MongoDB очень медленно . Интересно, имеет ли смысл делегировать / распространять создание индекса, а затем развертывать индекс результата на главном компьютере. Если кто-то обдумал это - был бы признателен за обмен опытом. Вот некоторые идеи, которые я хотел проверить:

  • Используйте распределенное задание, такое как Hadoop или DataFlow, для создания кортежей индексов, а затем загрузите их обратно либо в MongoDB напрямую, либо в другую БД, которая может быть более эффективной для хранения инвертированного индекса.
  • Используйте другой сервис, такой как ElasticSearch, который потенциально может более эффективно обрабатывать индексирование; однако я не имею опыта работы с ним и хочу продолжать размещать все на одной машине.

1 Ответ

0 голосов
/ 03 июля 2018

В конце я решил сгенерировать все кортежи для индексации с помощью Apache Beam / DataFlow, импортировать все кортежи с помощью mongoimport и затем создать индекс для нужных мне полей. Таким образом, я получаю индекс для запроса в часах, а не днях.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...