2

大きなjsonファイル(350GB)があり、mongoimportを使用してMongoDBコレクションにインポートしようとしています.mongoimportは非常に遅く、何日かかるかわかりません.

このjsonファイルをmongodbコレクションにロードする最良の方法を提案してください。この json ファイルをロードするのに十分なディスク容量があります。

4

3 に答える 3

4

同様の状況に遭遇しました。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 &
...
于 2014-12-12T05:29:29.043 に答える