我正在尝试解决一些关于将 MongoDb 用于大量文档以用于各种聚合的性能考虑。
我读过一个集合有 32TB 容量,具体取决于块和分片键值的大小。
如果我有 65,000 个客户,每个客户(平均)每天向我们提供 350 笔销售交易,那么最终每天会创建大约 22,750,000 个文档。当我说销售交易时,我指的是一个对象,它类似于带有抬头和行项目的发票。我拥有的每个文档平均为 2.60kb。
这些客户还收到了一些其他数据,例如帐户余额和目录中的产品。我估计任何时候都有大约 1,000 条产品记录处于活动状态。
基于以上所述,我在一年内大约有 8,392,475,0,00(84 亿)个文档,总共有 20,145,450,000 kb(18.76Tb)的数据存储在一个集合中。
基于 32Tb (34,359,738,368 kb) 的 MongoDb 集合的容量,我相信它将达到容量的 58.63%。
我想了解这对于在其上运行的不同聚合查询将如何执行。我想创建一组分阶段的管道聚合,它们写入不同的集合,用作业务洞察分析的源数据。
在 84 亿个事务文档中,我的目标是通过一组单独的服务在不同的集合中创建这些聚合数据,这些服务的输出使用$out
以避免单个结果集的 16Mb 文档大小出现任何问题。
我是否过于雄心勃勃地期望 MongoDb 能够:
- 将这么多数据存储在一个集合中
- 汇总和输出刷新数据的结果,以在单独的集合中推动业务洞察力,供服务使用,这些服务提供客户业务的离散方面
欢迎任何反馈,我想了解使用 MongoDb 相对于其他技术进行数量数据存储和使用的限制在哪里。
提前致谢