大きなjsonファイル(350GB)があり、mongoimportを使用してMongoDBコレクションにインポートしようとしています.mongoimportは非常に遅く、何日かかるかわかりません.
このjsonファイルをmongodbコレクションにロードする最良の方法を提案してください。この json ファイルをロードするのに十分なディスク容量があります。
大きなjsonファイル(350GB)があり、mongoimportを使用してMongoDBコレクションにインポートしようとしています.mongoimportは非常に遅く、何日かかるかわかりません.
このjsonファイルをmongodbコレクションにロードする最良の方法を提案してください。この json ファイルをロードするのに十分なディスク容量があります。
同様の状況に遭遇しました。mongorestore
の代わりに使用しましmongoimport
たが、考え方は同じです。iotop
は、復元プロセスの IO レートが約 1M/s であり、かなり低いことを示しています。ここの他の投稿が示唆しているように、パフォーマンスが低いのはおそらく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 &
...