1

基本的に任意の期間の動的グラフを表示したいログファイルデータがたくさんあり、必要に応じてさまざまな列でフィルター処理または集計されます (事前に生成できます)。次の場合に、データをデータベースに保存し、グラフを表示するためにアクセスする最良の方法について疑問に思っています。

  • 時間分解能は、1 秒から 1 年まで可変でなければなりません
  • 複数の「時間バケット」にまたがるエントリがあります。たとえば、接続が数日間開いていた可能性があり、接続が作成された時間の「スロット」だけでなく、接続されていたすべての時間のユーザーをカウントして表示したいまたは終了

この種類と量のデータを処理するのに役立つレール用のベスト プラクティス、またはツール/プラグインはありますか? これに合わせて特別に調整された、または便利な機能 (CouchDB インデックスなど) を備えたデータベース エンジンはありますか?

編集:このデータとアクセスパターンを処理するスケーラブルな方法を探しています。考慮したこと: 各バケットに対してクエリを実行し、アプリでマージします - おそらく遅すぎます。GROUP BY タイムスタンプ/粒度 - 接続を正しくカウントしません。最小の粒度とクエリでのダウンサンプリングによってデータを行に前処理する - おそらく最良の方法です。

4

2 に答える 2

0

これにはmysqlのタイムスタンプを使用できると思います。

于 2010-08-19T00:02:00.167 に答える
0

最終的に解決した方法は、データを前処理して分単位のバケットにすることでした。そのため、イベントと分ごとに 1 つの行が存在します。これにより、選択が簡単かつ迅速になり、正しい結果が得られます。異なる粒度を取得するには、タイムスタンプ列で整数演算を行うことができます - abs(timestamp/factor)*factor を選択し、abs(timestamp/factor)*factor でグループ化します。

于 2010-08-27T21:21:17.567 に答える