如何处理大量日志文件数据以在动态图表中显示?

时间:2010-08-18 20:31:54

标签: ruby-on-rails ruby filtering logfile-analysis

我有很多日志文件数据,我希望显示动态图,基本上是任意时间段,可选择过滤或聚合不同的列(我可以预生成)。我想知道在以下情况下将数据存储在数据库中并访问它以显示图表的最佳方法:

  • 时间分辨率应在一秒到一年之间变化
  • 有些条目跨越几个“时间段”,例如连接可能已经打开了几天,我想计算并显示用户连接的每个小时,而不仅仅是在创建或完成连接的小时“插槽”中

是否有最佳做法或工具/插件用于帮助处理此类数据量的数据?是否有专门针对此定制的数据库引擎,或者具有有用的功能(例如CouchDB索引)?

编辑:我正在寻找一种可扩展的方式来处理这些数据和访问模式。我们考虑的事情:为每个存储桶运行查询,在应用程序中合并 - 可能太慢了。 GROUP BY时间戳/粒度 - 不正确计算连接数。通过最小粒度和查询下采样将数据预处理成行 - 可能是最好的方法。

2 个答案:

答案 0 :(得分:0)

我认为你可以使用mysql时间戳。

答案 1 :(得分:0)

我最终解决它的方法是将数据预处理到每分钟桶中,因此每个事件和分钟都有一行。这样可以轻松快速地选择并产生正确的结果。要获得不同的粒度,可以对时间戳列进行整数运算 - 选择abs(时间戳/因子)*因子和按abs(时间戳/因子)*因子分组。