所以上下文是我有一个生成日志的客户端应用程序,我想偶尔将这些数据上传到后端。后端将充当分析服务器,存储,处理和显示这些数据 - 因此您可以想象会涉及一些查询。
在数据收集峰值负载方面,我预计会有大约5k个客户端,每个客户端每天产生大约50-100个线路,我希望我能够处理的解决方案能够处理一种数据。如果你做数学计算,那就是每月超过100万条记录行。
在数据分析负载方面,它会相当低 - 我希望我们几个(管理员)运行查询,每周从所有日志中收集一些信息。
我的应用程序目前正在运行RoR + Postgres,但如果它能更好地映射到我的需求,我可以使用不同的dB。我目前的竞争者是MongoDB& Cassandra,但如果可以扩展以完成工作,我真的不想离开Postgres。
答案 0 :(得分:1)
答案 1 :(得分:0)
如果您正在寻找随着请求而增长的数据库解决方案,那么我建议您超越Postgres。
Cassandra非常适合时间序列数据,但键值存储不适合ad-hoc分析。一个想法可能是将您的日志存储在Cassandra中,然后将它们汇总到另一个系统中。
为了直接存储和显示数据,请查看Graphite,一个实时图表项目。
您可以使用Graphite创建自己的自定义图表,并将其另存为仪表板。
答案 2 :(得分:0)
根据我的经验,当您拥有大量日志而不是使用数据库时,您将需要一个搜索引擎来进行故障排除和分析。 (搜索引擎将比数据库更快。)
目前,我正在使用logstash + Elasticsearch + Kibana整体解决方案来构建我的Log系统。
这是一个Kibana演示网站。你可以访问它。 http://demo.kibana.org/。 它提供搜索界面和分析工具,如饼图,表格等。
在我的项目中,我的应用程序每天生成超过150万条日志。此Log系统可以处理所有这些日志。
享受它。