3

MongoDB Json データベースを使用してアプリケーションからのログ ファイルを保存することは良い考えだと思いますか?またその理由は?

私にとって唯一の利点はスキーマの抽象化ですが、ログ ファイルの整合性を確保できないという弱点もあると思います。

4

2 に答える 2

4

明らかに私は偏っていますが (私は MongoDB で作業しています)、ログには非常にうまく機能すると思います。

理由:

  • 挿入と更新は高速です...毎秒数千回実行できます
  • 通常のクエリと同様に、JavaScript を使用して分析を実行し、レポートを生成できます。cron ジョブを毎晩実行して、ログに MapReduce を行うことができます。
  • キューのように機能するコレクションである制限付きコレクションを使用して、最新の N KB/MB/GB のログのみを保持できます。

「ログ ファイルの整合性を確保する」という意味がよくわかりません... 引き出しているドキュメントにどのフィールドがあるかわからないことを心配しているということですか? もしそうなら、リレーショナル データベースで null フィールドを扱うのは難しくなく、はるかに柔軟であることがわかると思います。

参照:ロギングに関する MongoDB ブログ投稿

于 2010-01-08T00:04:11.683 に答える
2

私は MongoDB を使用して多くのアプリケーションからのログを保存していますが、これまでのところ非常にうまく機能しています。

Mongo SV と前回の MongoDB SF Meetup で私が行った Logging Application Behavior to MongoDB に関するプレゼンテーションのスライドを参照して、ログ記録に適していると考える理由の背景と情報を確認してください。 MongoDB へのロギングをサポートする Java、Python、Ruby、PHP、C# のライブラリ。

私は現在、MongoDB 用の Log4J アペンダーである log4mongo-java のメイン コミッターです。だから、それが私が使っているものであることは、おそらくそれほど驚くべきことではありません.

ログの完全性に関しては、書かれた後に変更されていないという自信を意味していると思います。少なくとも log4mongo-java では、認証が必要なデータベースにログ記録イベントを保存するオプションがあります。これにより、イベントを追加、削除、または更新できるユーザーの数がある程度制限されます。

さらに、厳密にロックダウンされたレプリケーション スレーブを設定できます。スレーブの頻繁なバックアップは、ログに記録された一連のイベントを変更できる時間を少なくとも制限します。

于 2011-01-23T02:48:20.263 に答える