【问题标题】:How can I efficiently store rapidly changing time-series data in mongodb?如何在 mongodb 中有效地存储快速变化的时间序列数据?
【发布时间】:2015-05-28 19:56:38
【问题描述】:

我有一个由光传感器生成的实时时间序列数据,并在公共 javascript 文件中显示为一个快速变化(大约每 20 毫秒刷新一次)的变量。如何有效地将它们存储到 mongo 中?谁能给我一些关于最佳实践的建议?

【问题讨论】:

  • 这个问题不清楚。首先,我们需要知道“快速变化”的真正含义。它可能意味着每分钟一次到每微秒一次之间的任何事情。然后我们需要知道你在数据库中实际存储了哪些信息——只是当前值还是所有值的历史?然后我们需要知道您实际上打算如何处理数据 - 在设计 MongoDB 数据库模式时,您希望如何查询它是最重要的因素。

标签: node.js mongodb time-series hardware database


【解决方案1】:

这听起来像是使用 mongodb 的 Capped Collections 的好案例。

上限集合是固定大小的集合,支持基于插入顺序插入和检索文档的高吞吐量操作。 Capped 集合的工作方式类似于循环缓冲区:一旦集合填满了分配的空间,它就会通过覆盖集合中最旧的文档来为新文档腾出空间。

您可以将每个光传感器测量值作为一个新文档插入到 Capped Collection 中,然后您可以按照插入时的相同顺序有效地检索测量值,并且不必担心存储空间不足。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-07-07
    • 2013-03-31
    • 1970-01-01
    • 1970-01-01
    • 2015-07-06
    • 1970-01-01
    • 1970-01-01
    • 2019-11-03
    相关资源
    最近更新 更多