我希望使用MongoDB来存储时间序列数据。为了便于讨论,我想要部署有限数量的传感器(例如10-100-1000个传感器)。每个传感器都有十几个“度量”(例如温度,湿度等),每分钟收集一次,然后存储。 有一个前端,然后显示每个传感器的图表或按选定的时间间隔聚合。
存储此功能的最佳方法是什么?具体做法是:
非常感谢
答案 0 :(得分:2)
方法1(A): 为所有内容创建单个数据库。 (单一收藏)
优点:
<强>缺点:强>
方法1(B): 为所有内容创建单个数据库。 (每个传感器有1个集合)
优点:
<强>缺点:强>
在性能方面,如果我按每个传感器或指标对数据进行分区是否重要?
在性能方面,我应该只为传感器信息创建一个集合,然后为数据集合创建一个集合,还是仅将两者合并到同一个集合中?
可能需要为传感器元数据和传感器数据创建集合。它将最大限度地减少每个收集的传感器数据中的重复传感器元数据。
您可以在此处阅读Williams blog post来设计此模式。
总是更好地设计一个示例模式并在测试环境中测试您的查询。