如何为物联网网关选择合适的数据库?

物联网 产品设计
2021-06-15 07:38:03

假设我构建了一个 IoT 网关 (Linux OS),用于从传感器收集数据。数据存储在数据库中,可以通过此网关上的 Web 服务器实现查看。存储空间不大,2GB左右。哪种数据库适合这种情况?RDBM 或 NoSQL 或时间序列?就我而言,我认为不需要 NoSQL 和时间序列,只需继续使用传统的 RDBM。好吗?请给我一些建议。

添加更多信息:

  • 每个传感器将发送温度、电压等。
  • 每个传感器在一小时、一天或一个月内的数据可视化。(我认为最好是在一个月内)
  • 并跟踪所有每个值。示例:网关想立即从传感器读取数据,但由于某些原因(传感器已死,与网络断开连接等)无法读取。因此,这一时刻将被跟踪并将其值设置为空(或指出该时刻无法从传感器获取数据的值)。当你查看数据可视化时,你就会知道,这是传感器或网络的问题。
2个回答

听起来你不会有太多数据,所以我会选择你最舒服的任何东西。如果您精通 SQL,我会使用 SQL 数据库,例如 MySQL 或 Postgres。

一旦你进入更高的容量,每秒数百到数千个插入,然后我会查看时间序列数据库。它们可以处理高摄取并提供更简单的查询方法来处理数据。

我写了一篇关于如何查询常规数据库与时间序列数据库 (Hyprcubd) 的博客文章。 https://blog.hyprcubd.com/time-series-graph/

如果我理解正确,您是在说像这样的时间序列数据库,对吗?

在此处输入图片说明

然后你应该像你说的那样使用时间序列数据库:

每个传感器在一小时、一天或一个月内的数据可视化。(我认为最好是在一个月内)

并且:

每个传感器将发送温度、电压等。

所以最好的选择是每 5-10 分钟、一小时、一天或一个月查看图表上的数据。如上面的示例图像所示。

如果如你所说:

并跟踪所有每个值。示例:网关想立即从传感器读取数据,但由于某些原因(传感器死机、网络断开等)无法读取。因此,这一时刻将被跟踪并将其值设置为空(或指出该时刻无法从传感器获取数据的值)。当你查看数据可视化时,你会知道,这是传感器或网络的问题。

当传感器死亡时,图表上的图将显示为“null=0”,并带有时间和日期参考。