フォローするのに適したデータベースは何ですか? 非リレーショナルNoSQLシステムに関するあなたの経験に特に興味があります。この種の使用に適しているか、どのシステムを使用して推奨するか、または通常のリレーショナル データベース (DB2) を使用する必要がありますか?
監査証跡/ログ タイプの情報を多数のソースから中央サーバーに収集して、レポートを効率的に生成し、システムで何が起こっているかを調べる必要があります。
通常、監査/ロギング イベントは常にいくつかの必須フィールドで構成されます。
- グローバルに一意の ID (このイベントを生成したプログラムによって何らかの方法で生成されたもの)
- タイムスタンプ
- イベントの種類 (つまり、ユーザーがログインした、エラーが発生したなど)
- ソースに関する情報 (server1、server2)
さらに、イベントには 0 ~ N のキーと値のペアが含まれる場合があり、値は最大で数キロバイトのテキストになる可能性があります。
- Linuxサーバーで実行する必要があります
- 大量のデータ(たとえば100GB)で動作するはずです
- ある種の効率的な全文検索をサポートする必要があります
- 同時読み取りと書き込みを許可する必要があります
- 新しいイベント タイプを追加したり、キーと値のペアを新しいイベントに追加/削除したりできる柔軟性が必要です。柔軟 = データベース スキーマを変更する必要はありません。イベントを生成するアプリケーションは、必要に応じて新しいイベント タイプ/新しいフィールドを追加するだけです。
- データベースに対してクエリを実行すると効率的です。何が起こったのかを報告し、調査するため。例えば:
- ある期間に発生した type=X のイベントの数。
- フィールド A の値が Y であるすべてのイベントを取得します。
- タイプ X でフィールド A の値が 1 でフィールド B が 2 ではなく、イベントが過去 24 時間に発生したすべてのイベントを取得する