日志查看实用程序库选择

时间:2012-11-19 08:19:24

标签: mongodb postgresql hadoop logging nosql

我将很快实现日志查看工具。但我坚持使用数据库选择。我的要求如下:

  • 每天存储5 GB数据
  • 5 TB数据的总大小
  • 在不到10秒的时间内搜索此日志数据

我知道如果我对表格进行分段,PostgreSQL就可以工作了。但是我能否在上面写出这个性能。据我所知,NoSQL是日志存储的更好选择,因为日志结构不是很好。我看到了一个像下面这样的例子,看起来很有希望使用hadoop-hbase-lucene: http://blog.mgm-tp.com/2010/03/hadoop-log-management-part1/

但在决定之前我想询问是否有人之前做过这样的选择并且可以给我一个想法。哪个DBMS最适合这项任务?

2 个答案:

答案 0 :(得分:5)

我的日志非常有条理:)

我会说你不需要数据库,你需要搜索引擎:

  • Solr基于Lucene,它将您需要的所有内容打包在一起
  • ElasticSearch另一个基于Lucene的搜索引擎
  • Sphinx好消息是你可以为每个搜索索引使用多个来源 - 用其他事件丰富你的原始日志
  • Scribe Facebook搜索和收集日志的方式

@JustBob更新: 大多数提到的解决方案都可以使用平面文件,而不会影响性能。所有这些都需要反向索引,这是构建或维护最难的部分。您可以批处理模式或联机更新索引。索引可以存储在RDBMS,NoSQL或自定义“平面文件”存储格式中(自定义 - 由搜索引擎应用程序维护)

答案 1 :(得分:4)

您可以在这里找到很多信息:

http://kkovacs.eu/cassandra-vs-mongodb-vs-couchdb-vs-redis

了解哪些适合您的需求。

无论如何,NoSQL是正确的选择。


您还应该考虑学习曲线MongoDB / CouchDB,即使它们没有像Cassandra或Hadoop那样执行,它们也更容易学习。

Craigslist使用MongoDB存储旧档案:http://www.10gen.com/presentations/mongodb-craigslist-one-year-later