传感器数据的mongodb结构

时间:2015-04-28 09:50:35

标签: mongodb time-series sensor

我是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模型上有点挣扎。

如果有人可以提供关于如何构建数据库的建议,我会永远感激,或者让我更加全面地理解。

1 个答案:

答案 0 :(得分:1)

如果您通过此演示文稿,您将找到答案。它讨论了16000传感器数据的建模。

Time Series Data Modeling

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

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