最近 MongoDB を試した後、大量のデータをコレクションにインポート/挿入するいくつかの異なる方法を試しました。これまでのところ、私が見つけた最も効率的な方法は mongoimport です。完全に機能しますが、まだオーバーヘッドがあります。インポートが完了した後でも、マシンを再起動しない限りメモリが使用可能になりません。
例:
mongoimport -d flightdata -c trajectory_data --type csv --file trjdata.csv --headerline
私のヘッダーラインとデータは次のようになります:
'FID','ACID','FLIGHT_INDEX','ORIG_INDEX','ORIG_TIME','CUR_LAT', ...
'20..','J5','79977,'79977','20110116:15:53:11','1967', ...
530 万行 x 20 列、約 900MB の場合、次のようになります。
これは長期的にはうまくいきません。常に再起動できるとは限らないか、最終的にメモリ不足になります。MongoDB にインポートするより効果的な方法は何ですか? 定期的な RAM フラッシュについて読みましたが、上記の例のようなものをどのように実装できますか?
更新: 私のケースでは、fsync、syncdelay、またはジャーナリングを調整してもあまりメリットがないと思います。高RAMサーバーで実行していたとしても、いつそれが良いアイデアであり、ベストプラクティスになるのか、私はただ興味があります.