最好的物联网数据库?

Best IoT Database?

我有很多物联网设备正在向 MySQL 数据库发送数据。
我想将它移植到其他一些数据库,这些数据库将是开源的并为我提供:


请尽快回复。 任何帮助将不胜感激。

谢谢

为什么要离开 MySQL?它是开源的,可以满足您上面列出的所有标准。这是一个非常主观的问题,所以很难给出一个好的答案,但是 MySQL 是一个不错的选择

根据输入数据调整数据库是错误的。想想明天您的数据将是 CSV 或 XML,格式略有不同。根据您的抽象数据模型设计您的数据库,对其进行规范化并将现有数据应用于您的模型。根据您拥有的输入和您计划获得的输出来塑造您的结构。如果你检索的内容与输入相同,将数据存储在文件中就足够了,你不需要数据库。

此外,您不想在数据库中存储 "raw" 记录。即使您的数据库可以在 运行 时从原始元素组成数据记录,您也无法 运行 在不访问所有记录的情况下基于某个提取的元素进行选择。

大多数数据库允许您从任何地方连接(与 Python 相比,Java 中没有更好的 PostgreSQL 支持,但是驱动程序的质量和标准化水平可能会有所不同)。问题是您的驱动程序应支持哪些功能。例如,您可能需要支持批量导入(不要向数据库发出大型 INSERT 集)。

您实际查找的是:

  • 可扩展性:您的数据库能否随着数据的增长而增长?添加额外的 CPU 对数据库有好处吗(MySQL 尤其不适合大型查询)。你能在多个实例上分片你的数据库吗? (MySQL 再次无法处理)。
  • 你的模型看起来像雪花吗?如果是,你可以考虑 NoSQL,否则远离它。如果您设法将模型建模为雪花(这意味着您愿意妥协),您可以使用任何基于 Lucene 的搜索产品、Mongo、Cassandra 等。您拥有时间序列这一事实并不符合您使用 NoSQL 的条件.例如,您可能有 10K 台设备发出 5k 种消息类型。特定数据在设备级别和消息类型级别被冗余记录。在那种情况下,由于 n:m 关系,您不再有雪花。
  • 为什么要存储数据?您要发出什么查询?