2

約625,000個のオブジェクトのコレクションがあります。

毎晩cronを介して、このデータの更新されたファイル(tsv)をデータプロバイダーから取得し、それらをmongodbに再インポートする必要があります。

データを消費しているウェブサイト/サービスとそのユーザーを中断することなくこれを行うための最良の方法は何ですか?mongoimport --upsertをコレクションに直接追加するのが最善の方法ですか?とても遅いです。

コレクションのコピーを含む他の方法を考える必要がありますか?

4

1 に答える 1

1

mongoimport --upsertをコレクションに直接追加するのが最善の方法ですか?とても遅いです。

これは機能しますが、私の経験でmongoimportは遅くて扱いにくいものでした。また、他にもいくつかの重大な制限があります。進行状況を追跡する機能、チェック/検証の場所、実行内容のログがありません。

コレクションのコピーを含む他の方法を考える必要がありますか?

ここでの別の方法は、これを行うスクリプトを作成することです。ほとんどの言語では、これは非常に簡単です。

これにより、進行状況を追跡し、不良データを処理することができます。インポートが特に遅い場合は、プロセスをフォークして作業を分割することもできます。

速度について

625kオブジェクトを更新していることを忘れないでください。1秒あたり1,000回の更新を取得できる場合でも、更新には10分かかります。インポートプロセス中に監視を実行mongostatまたは確認する場合は、実行されている作業の量を把握する必要があります。

于 2011-11-28T21:26:23.510 に答える