我正在努力解决有关使用MongoDb处理各种聚合中使用的大量文档的一些性能问题。MongoDB聚合性能能力
我读过一个集合具有32TB capcity,具体取决于块和分片键值的大小。
如果我有65,000个客户,每个客户每天向我们提供350笔销售交易,那么每天最多可创建22,750,000份文档。当我说一个销售交易时,我的意思是一个对象,就像一个包含标题和订单项的发票。我拥有的每份文件平均为2.60kb。
我还有一些其他数据被这些相同的客户收到,如帐户余额和目录中的产品。我估计任何时候都有大约1000个产品记录在活动。
基于上述情况,我每年接近8,392,475,0,00(84亿)份文件,总共存储20,145,450,000 kb(18.76Tb)的数据。
根据MongoDb收集32Tb(34,359,738,368 kb)的容量,我相信它的容量将达到58.63%。
我想了解它将如何执行不同聚合查询上运行它。我想创建一组分阶段管道聚合,这些聚合写入不同的集合,这些集合用作商业洞察分析的源数据。
在84亿份交易文档中,我的目标是通过一组单独的服务在不同的集合中创建这些汇总数据,这些服务使用$out
输出,以避免单个结果集的16Mb文档大小出现任何问题。
我是不是过于雄心勃勃这里厚望的MongoDB能够:
- 商店,一个集合中的大量数据
- 总输出刷新数据的结果,以推动业务洞察力在一个单独的集合通过提供客户业务的离散方面的服务消费
任何反馈欢迎,我想了解在使用MongoDb的限制,而不是其他技术的数量数据存储和我们即
在此先感谢
谢谢@Kiril,我计划在聚合中使用的文档数量,你认为MongoDb会处理它吗?我知道存储容量只是我需要考虑的一个方面。谢谢,Matt –
您的聚合查询性能将取决于特定查询返回的数据量以及可用于支持该查询的索引。如果您的报告需要梳理18TB的数据以进行查询,则快速数据必须位于内存或快速SSD中。 – Kiril