2015-04-28 56 views
1

我是NOSQL的新手,所以请耐心等待,我浏览了教程和相关的时间序列基础指南,但仍然卡住了。传感器数据的mongodb结构

我目前正在使用1个传感器,但是无论放在哪里,都需要至少可扩展到数以万计的传感器。传感器将通过GPRS进行远程传输和数据传输,因此可以每隔15分钟以大块方式提取数据,但我们希望从传感器每分钟存储数据。

有我希望存储的时间序列数据,如 GPS位置,能源使用和收费率,但老实说,我很困惑数据库结构来存储这些数据。我还需要存储更多的交易清单。我还需要存储非时间序列数据,如独特的传感器ID,传感器绑得ETX用户..

有一个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

如果你通过这个演示文稿,你会找到你的答案。它讨论了建模16000个传感器数据。

Time Series Data Modeling

你可以有来自传感器的数据在一个文件中,如果你只是想从所有传感器聚集。但是,如果您希望基于传感器ID进行查询,则最好将sensorId嵌入文档的_id字段中,如下所示:

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