远程传感器数据记录的最佳数据库

时间:2012-06-29 09:20:04

标签: database nosql rdbms sensor

我需要选择一个数据库,用于从大量(数千到数万)传感器远程存储数据,每个传感器每分钟产生一个条目。

需要以各种方式查询所述数据,从统计具有某些统计特征的数据到简单的绘图输出。

我正在寻找合适的工具,我从MySQL开始,但我觉得它缺乏这个项目所需的可扩展性,这使我得到了我不太了解的无数据库数据库。

哪个数据库,无论是否是关系数据库都是不错的选择?

感谢。

3 个答案:

答案 0 :(得分:9)

通常没有“最佳”数据库,因为它们都涉及这种或那种权衡。您的问题也很模糊,因为除了每分钟插入的数量(每个插入的数据量?)以及您需要“可扩展性”之外,您没有说出您的性能需求。

它看起来也像是一个过早优化的情况,因为你说“感觉就像[MySQL]缺乏这个项目所需的可扩展性”,但它听起来并不像你运行任何测试以确认这是否是一个真正的问题。获取真实数据总是更好,而不是基于“感受”的重要架构决策。

这是一个建议:

  1. 编写一个简单的测试程序,每分钟插入10,000行样本数据
  2. 运行程序一段相当长的时间(几天或更长时间)以生成大量的测试数据
  3. 运行您的查询以查看它们是否符合您的性能需求(您尚未指定 - 它们需要多快?它们运行的​​频率如何?它们有多复杂?)
  4. 您至少在这里测试两件事:数据库是否可以每分钟处理10,000次插入,以及一旦您拥有大量数据,您的查询是否会运行得足够快。对于大型数据集,这些将成为竞争优先级,因为您需要快速查询的索引,但索引将开始减慢插入的速度。在某些时候,您还需要考虑数据存档(或清除,如果不需要历史数据),无论是出于性能还是出于实际原因(有限的存储空间)。

    无论您选择哪种数据库,都会受到关注。从您告诉我们的关于您的检索需求(“计算具有某些特征的数据”和“简单输出绘图”)来看,它听起来像任何类型的数据库都可以。可能其他问题更重要,例如易于开发(您使用的是哪种语言和工具?),部署,管理,代码可维护性等。

    由于这是我们正在讨论的传感器数据,您可能还需要查看循环数据库(RRD),例如RRDTool,以了解该方法是否更符合您的需求。

答案 1 :(得分:0)

在谷歌搜索“传感器数据数据库”时发现此问题 其中一个非常有用的搜索结果(以及此SO问题)是blog

实际上我已经开始了一个类似的项目(http://reatha.de),但实现得太晚了,我使用的不是最好的技术。我的方法类似于MySQL + PHP。最后我意识到这不可扩展并且停止了项目。

此外,一个好的起点是list of data-bases in Heroku:  如果他们使用一个,那么它应该不是最差的。

我希望这会有所帮助。

答案 2 :(得分:-3)

您可以尝试使用Redis noSQL数据库