Я столкнулся с подобной ситуацией. Я использовал mongorestore
вместо mongoimport
, но идея такая же. iotop
показывает, что процесс восстановления имел скорость ввода-вывода около 1 М/с, что довольно мало. Как и в случае other post here suggests, низкая производительность, вероятно, связана с сериализацией json для bson. Таким образом, я закончил раскалывается экспортированный файл JSON в различные куски с помощью следующей команды
mongodump --host <host> --port <port> --username <user> --password <pwd> --authenticateionDatabase admin --db <db> --collection <coll> --query "{DayOfWeek:"Monday"}" --out "SomeDir-Monday" &
mongodump --host <host> --port <port> --username <user> --password <pwd> --authenticateionDatabase admin --db <db> --collection <coll> --query "{DayOfWeek:"Tuesday"}" --out "SomeDir-Tuesday" &
...
я закончил тем, что 7 кусков. Наконец импортируйте эти куски параллельно, используя mongorestore со следующей командой.
mongorestore --host <host> --port <port> --username <user> --password <pwd> --authenticateionDatabase admin --db <db> --collection <coll> PATH_TO_MONDAY.json &
mongorestore --host <host> --port <port> --username <user> --password <pwd> --authenticateionDatabase admin --db <db> --collection <coll> PATH_TO_TUESDAY.json &
...
Благодарим за обновление. Я буду использовать этот подход при создании дампа снова. Я использовал mongoimport, поскольку у меня был json-файл, а не файл bson для моей коллекции. Теперь эта коллекция не существует, поэтому я не могу создать дамп снова с помощью подхода chunks. Мне нужно найти способ разделить большой json-файл и загрузить его. Спасибо. – user3407386