【问题标题】:Can MongoDB WiredTiger engine be used for pre-aggregated reports? (similar to MMAPv1)MongoDB WiredTiger 引擎可以用于预聚合报告吗? (类似于 MMAPv1)
【发布时间】:2026-01-19 22:45:01
【问题描述】:

mongodb 文档中的一个用例页面显示了一个使用大量数据创建预聚合报告的示例: https://docs.mongodb.com/ecosystem/use-cases/pre-aggregated-reports-mmapv1/

该文档明确指出这仅适用于 MMAPv1 引擎,就 WiredTiger 而言,没有关于权衡的额外信息或如何处理此用例。

还有针对此类用例的设计的宏观概述:https://www.mongodb.com/blog/post/schema-design-for-time-series-data-in-mongodb 但这显示的方法与上面的用例链接几乎相同。

关于如何解决这个问题的任何建议?

【问题讨论】:

    标签: database mongodb


    【解决方案1】:

    https://jira.mongodb.org/browse/DOCS-4894 有一些细节。显然标题有点误导,因为它仅适用于页面的一半:

    页面定义了 4 个关键模式:

    1. 预聚合(更新每个消耗事件的平均值/分钟/最大值,而不是记录原始事件)。
    2. 分桶(将记录集分组在一起,例如按天分组,以便快速后续访问 - 处理消耗大量细粒度事件然后为想要检索粗粒度数据的分析/报告提供服务的模式)。
    3. 预分配(又称预填充,以避免文档过度增长和重新分配)
    4. Intra-document-hierarchy(防止事件提取延迟随着每天时间的增加而增加)

    随着 WiredTiger 的引入,由于 WiredTiger 处理“就地更新”的方式,可能不再需要模式 3(预分配),甚至可能是有害的“在内部。也可能是 模式 4(文档内层次结构) 在使用 WiredTiger 时也没有增加任何价值(这需要有人验证)。

    似乎预聚合(也在博文中描述)和分桶仍然是有效的模式。

    【讨论】:

    • 问题是,您链接的问题已关闭。但是文档仍然含糊不清-_-”