動的チャートに表示するために、大量のログファイルデータを処理するにはどうすればよいですか?
-
29-09-2019 - |
質問
基本的に任意の期間から動的グラフを表示したいLogFileデータがたくさんあり、オプションで異なる列でフィルタリングまたは集約されます(事前に発生する可能性があります)。データをデータベースに保存し、チャートを表示するためにアクセスするための最良の方法について疑問に思っています。
- 時間分解能は1秒から1年変動する必要があります
- いくつかの「タイムバケット」にまたがるエントリがあります。たとえば、接続が数日間開いていた可能性があります。接続が作成された時間だけでなく、接続された1時間ごとにユーザーをカウントして表示したいと思います。または終了
この種のデータと量のデータを処理するのに役立つレール用のベストプラクティス、またはツール/プラグインはありますか?これに向けて特別に調整されたデータベースエンジンはありますか、それとも有用な機能(CouchDBインデックスなど)がありますか?
編集:私は探しています スケーラブル このデータとアクセスパターンを処理する方法。私たちが検討したこと:バケットごとにクエリを実行し、アプリにマージします - おそらく遅すぎます。 Timestamp/Granularityによるグループ - 接続を正しくカウントしません。最小の粒度による行にデータを前処理し、クエリのダウンサンプリング - おそらく最良の方法です。
解決 2
最終的にそれを解決した方法は、データを1分間のバケツに前処理することでした。そのため、すべてのイベントと分に1つの行があります。これにより、正しい結果を選択して生成するのに十分な速さで簡単になります。異なる粒度を取得するには、タイムスタンプ列で整数算術を行うことができます-ABS(タイムスタンプ/ファクター)*ファクター、およびABS(タイムスタンプ/ファクター)*ファクターを選択します。
他のヒント
これにはMySQLタイムスタンプを使用できると思います。
所属していません StackOverflow