【问题标题】:mongodb structure for sensor data传感器数据的mongodb结构
【发布时间】:2015-07-07 02:27:49
【问题描述】:

我是 NOSQL 新手,所以请多多包涵,我已经阅读了教程和相关的基于时间序列的指南,但仍然卡住了。

我目前正在使用 1 个传感器,但无论采用何种方式,都需要至少可扩展到数万个传感器。传感器将是远程的,数据通过 GPRS 中继,因此数据可能每 15 分钟以块的形式获取,但我们希望存储传感器每分钟的数据。

我希望存储时间序列数据,例如 GPS 位置、能源使用和充电率,但老实说,我对存储这些数据的数据库结构感到非常困惑。我还需要进一步存储交易列表。我还需要存储非时间序列数据,例如唯一的传感器 ID、与传感器绑定的用户等。

有一个 mongodb 博客 here 讨论时间序列和 here 用于单个传感器。

这些建议每个文档都应该存储大量时间(例如,一个小时的数据),其中的值分解如下:

{ timestamp_hour: ISODate("2013-10-10T23:06:00.000Z"), type: “energy_use”, values: { 0: -1, 1: .. 2: .. 3: 4: 5: 6: 7: 8: 58: .. 59 .. } }

我不明白如何将此数据链接到特定传感器? 如果我有 10 个传感器,我还会有相同的结构,一个文档存储一小时的数据吗?那是每个传感器每小时一份文件,还是该小时内所有传感器一份文件。为什么不为每个传感器创建一个文档,其中记录时间序列?

抱歉,如果这有点令人困惑,我显然在使用 NOSQL 模型时有些挣扎。

如果有人能就如何构建数据库提供建议,我将永远感激不尽,或者让我更全面地理解。

【问题讨论】:

    标签: mongodb time-series sensors


    【解决方案1】:

    如果您浏览此演示文稿,您会找到答案。它讨论了对 16000 个传感器数据进行建模。

    Time Series Data Modeling

    如果您只想汇总所有传感器的数据,则可以在一个文档中包含所有传感器的数据。但是,如果您希望根据传感器 ID 进行查询,最好将 sensorId 嵌入到文档的 _id 字段中,如下所示:

    { 
        _id: "38392"
        data: [however you want to capture, per min, per hour]
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-04-04
      • 2015-12-20
      • 2016-03-04
      • 2019-02-06
      • 1970-01-01
      • 2015-04-17
      • 1970-01-01
      • 2018-01-12
      相关资源
      最近更新 更多