5

私は現在、大量のログデータを生成する大規模なWebアプリケーションに取り組んでいます。すべてのイベントをデータベースに記録するインフラストラクチャがないため、それらをファイルに書き込んでいます。残念ながら、これにより特定のイベントのログを検索することが非常に困難になり、頻度に関するレポートを生成できなくなります。

より良いデータベースロギングを実装する方法を見つけようとしているときに、Amazonのサービスを見つけました。具体的には、 SimpleDBDynamoDBです。SimpleDBのユースケースの1つはロギングでしたが、後でそれは次のように述べています

Amazon SimpleDBは、比較的少量のデータを保存するように設計されています...

これは矛盾しているようです。これが私の質問です:

  1. これらのデータベースサービスは、アプリケーションイベントのログ記録に適していますか?
  2. ログデータからレポートを生成するのに適していますか?
  3. 主キーとしてタイムスタンプを使用しますか?
  4. この種のサービスまたは私が考慮すべき他の何かに欠点はありますか?

アップデート2018-06-13:それ以来、SimpleDBを使用して大規模なアプリケーションのアプリケーションデータをログに記録しています。重要なのは、ログが生成された期間(たとえば毎日)に対応するドメインにログを分割して、ログが制限を超えないようにすることでした。次に、古いドメインを定期的に削除するようにCRONジョブを設定します。このソリューションはうまく機能し、簡単に検索できます。

4

2 に答える 2

5

私の答えは、実稼働環境でのSimpleDBの経験に基づいています。

  1. 1日に何千ものアプリケーションイベントをSimpleDBに記録します。
  2. SimpleDBからログデータを定期的に取得する研究者がいますが、文句を言うことはありません。SimpleDB自体でレポートクエリを実行するかどうかはわかりませんが、クエリを実行すると常に高速であるため、なぜこれが問題になるのかわかりません。
  3. SimpleDBはすべての列にインデックスを付けます。「主キー」はありません。
  4. 私は個人的に、SimpleDBと対話するために構築されたサードパーティのツールを使用することを楽しんでいません。また、使用するデータと処理の量に基づいて価格を検討してください。
于 2012-10-04T16:19:51.943 に答える
3

SimpleDBは、比較的少量のデータを格納するように設計されています。「大量のログデータ」があり、「ログで特定のイベントを検索」して「頻度に関するレポートを生成」したい場合は、DynamoDBを使用することをお勧めします。

DynamoDBには、さまざまな方法でデータを並べ替えることができる「ハッシュキー」(インデックスなど)と「範囲キー」の両方があります。例:「先週から現在までのすべてのINFOログを表示してください。」

また、公式のDynamoDBフォーラムをチェックすると、開発者とサポートスタッフは、フォローアップと質問への回答の確認に非常に優れています。

于 2012-10-05T05:59:59.357 に答える