1

私のデータ プロバイダーには、SSH 経由でアクセスできる、私のデータを含む MongoDB のリモート インスタンスがあります。現在、コマンドを使用してMongoDBにクエリを実行しています

mongoexport -d database -c collection --csv --out result.csv --q '{"date":{"$gte":new Date(1338480000000),"$lte": new Date(1338915599000)}}'

そこから、WinSCP を使用して、結果の JSON ファイルのコピーをリモートの Linux シェルからローカルの Windows ラップトップに転送しています。

問題は、今後、新しいエントリ (「イベント」) が MongoDBに追加されるたびにエクスポートを自動的に実行する必要があり、自動的に SCP を実行するか、結果の JSON ファイルを会社の Linux VPS にプッシュする必要があることです。これは、私の会社の CS 担当者が「イベント ドリブン エクスポート」と呼んだものです。私はそれを行う方法を知りませんし、データプロバイダーも知りませんし、Google-ingでそれを理解することもできませんでした.

それが不可能な場合は、cronjob を 1 分ごとに実行し、最後の 1 分間分のデータを MongoDB から JSON ファイルとしてエクスポートし、そのファイルを会社の Linux サーバーに SCP します。クエリを作成する方法と、mongoexport でファイル名を順番に保存する方法 (同じファイルを上書きしないようにするため) を理解するために、実際にいくつかの助けを借りて、最新のもののコピーを送信するように SCP に指示することができます。

4

1 に答える 1

0

「イベント ドリブン エクスポート」は、データ プロバイダー側​​でイベント (データが挿入された) を検出し、会社の Linux システムに通知を送信する必要があるため、非常に複雑です。

イベント検出は、MongoDB ログ ファイル (tail -f) の調査を意味する可能性がありますが、これはあまり信頼できません。検出器が失敗し、再起動する必要がある場合はどうでしょうか?

おそらく最も簡単な解決策は、データ プロバイダーのデータベースに接続し、定期的に新しいデータをチェックする (最新の「日付」エントリをチェックすることによって) 会社の Linux システムで MongoDB クライアントを実行することです。その後、面倒なエクスポート メカニズムの代わりに、新しいデータを直接取得します。

この調査クライアント プログラムは、永久ループで待機 (スリープ) するか、定期的に cron によって開始される可能性があります。

于 2013-04-03T23:18:17.440 に答える