最佳物联网数据库?

时间:2017-12-04 10:01:39

标签: json database-design relational-database iot non-relational-database

我有很多物联网设备当前向MySQL数据库发送数据。
我想将它移植到其他数据库,这将是开源并提供给我:

  • JSON支持
  • 可扩展性
  • 根据有效负载自动添加多个列的灵活性
  • Python和PHP支持
  • 极快读取,写入
  • 能够以CSV格式导出至少6个月的数据


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

由于

2 个答案:

答案 0 :(得分:0)

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

此外,您不希望将“原始”记录存储在数据库中。即使您的数据库可以在运行时从原始元素组成数据记录,也不能基于某个提取的元素运行选择,而不访问所有记录。

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

您实际需要的是:

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

答案 1 :(得分:-1)

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