我目前正在研究后端,以用于具有严格数据聚合要求的项目.主要项目要求如下.
为每个用户存储数百万条记录.用户每年可能有超过100万个条目,因此即使有100个用户,我们每年也会谈到1亿个条目.
必须即时执行这些条目的数据聚合.用户需要能够通过大量可用过滤器过滤条目,然后显示摘要(总计,平均值等)和结果图表.显然,我不能预先计算任何聚合结果,因为过滤器组合(以及结果集)是巨大的.
用户只能访问自己的数据,但如果可以为所有数据计算匿名统计数据,那就太好了.
数据大部分时间都是批量生产.例如,用户将每天上传数据,它可能会有3000条记录.在某些更高版本中,可能存在自动程序,例如每100分钟以较小批量上传100个项目.
我做了一个简单的测试,创建一个包含100万行的表,并在mongodb和mysql中执行1列的简单总和,性能差异很大.我不记得确切的数字,但它像mysql = 200ms,mongodb = 20秒.
我也用couchdb进行了测试,效果更差.
看起来很有希望的速度是cassandra,当我第一次发现它时,我非常热情.但是文档很少,我没有找到关于如何对数据执行求和和其他聚合函数的任何可靠示例.那可能吗 ?
从我的测试(也许我做错了)看来,当前的性能不可能将mongodb用于这样的项目,尽管自动分片功能似乎非常适合它.
有没有人有mongodb数据聚合的经验,或者有任何可能对项目实施有帮助的见解?
谢谢,迪米特里斯