Читать монгодумп вручную - PullRequest
0 голосов
/ 27 апреля 2020

У меня есть большой файл дампа, созданный утилитой mongodump, например, «test.dump». Я хочу получить одну точную коллекцию из этого дампа и вручную прочитать ее в память для дальнейшей обработки в качестве действительных документов BSON. Я не могу загрузить полный дамп в память из-за его размера.

Мне не нужно физически восстанавливать что-либо до go экземпляров! У меня даже ни один из них не работает. Так что утилита mongorestore может быть решением, только если она может помочь мне прочитать мою коллекцию из файла дампа в память.

Я использую Python 3 и pymon go, но могу импортировать другую стороннюю версию libs, если необходимо, или запустите утилиты CLI с результатами stdout.

Ответы [ 2 ]

1 голос
/ 27 апреля 2020

Мне незнакомы какие-либо стандартные инструменты, которые бы извлекали коллекцию из файла дампа. Тем не менее:

  • AWS предлагает тип экземпляра x1e.32xlarge с почти 4 ТБ памяти. Насколько велик ваш дамп?
  • Конечно, самое простое решение - просто загрузить дамп в развертывание MongoDB (которому не нужно много памяти или других ресурсов, если вы собираетесь сбросить одну коллекцию обратно). В наши дни аппаратное обеспечение очень дешевое.
  • Формат BSON не так уж и сложен. Я ожидаю, что вам нужно написать инструмент для этого самостоятельно, но если дамп на самом деле является действительным BSON, вы можете вручную просмотреть его, используя код чтения BSON, который является частью каждого драйвера MongoDB.
0 голосов
/ 27 апреля 2020

Используйте флаг --nsInclude на mongorestore, чтобы восстановить только одну коллекцию, которая вас интересует. Например,

mongorestore --nsInclude=<DatabaseName>.<CollectionName>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...