我将很快实现日志查看实用程序。但我坚持选择db。我的要求如下:
每天存储5 gb数据
5 tb数据的总大小
在10秒内搜索此日志数据
我知道如果我对表进行分段,postgresql就可以工作。但我能把这个表演写在上面吗。据我所知,nosql是存储日志的更好选择,因为日志不是很结构化。我看到了下面这样一个示例,使用hadoop hbase lucene似乎很有前途:http://blog.mgm-tp.com/2010/03/hadoop-log-management-part1/
但在决定之前,我想问是否有人做过这样的选择,可以给我一个想法。哪个数据库管理系统最适合这个任务?
2条答案
按热度按时间smdncfj31#
我的日志非常结构化:)
我想说你不需要数据库你需要搜索引擎:
solr基于lucene,它将您所需的一切打包在一起
elasticsearch是另一个基于lucene的搜索引擎
sphinx的好处是,每个搜索索引可以使用多个源——用其他事件丰富原始日志
描述facebook搜索和收集日志的方法
@justbob的更新:上面提到的大多数解决方案都可以使用平面文件,而不影响性能。所有这些都需要反向索引,这是最难建立或维护的部分。您可以在批处理模式或在线模式下更新索引。索引可以以rdbms、nosql或自定义“平面文件”存储格式存储(自定义-由搜索引擎应用程序维护)
edqdpe6u2#
你可以在这里找到很多信息:
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