我的服务器生成大量的事务日志。每条记录包含有关引用URL,用户,制造商和相关产品的信息。示例记录可能如下:
{transaction_id: 1, url: "http://example.com/", user_agent: "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/535.7 (KHTML, like Gecko) Chrome/16.0.912.77 Safari/535.7", manufacturer_id: 2, product_id: 3}
我将这些日志存储了一个月,然后我丢弃旧的日志以便为新的日志腾出空间。
我需要回答的问题是“每天在网址http://example.com/上显示产品3的次数?”或者“每天使用Firefox 10的用户多少次请求制造商-2的产品?”。所有报告都是每日报道,但分组方式可能会增加。此外,我应该能够存储数据多年。
您建议以灵活的方式聚合日志的数据库系统是什么?
我考虑过,
我倾向于MongoDB。你觉得怎么样?
答案 0 :(得分:1)
你应该研究类似Bigtable的数据库。目前,有两种开源实现:HBase和Hypertable。 (免责声明:我为Hypertable工作)。分析是一种典型的使用场景。
如果是Hypertable,你会得到
我确信HBase提供类似的功能。
查看本教程 - 它显示了如何通过指定时间间隔和其他谓词来查询Web访问者的日志。 http://code.google.com/p/hypertable/wiki/HQLTutorial