DataLogging和NoSQL

时间:2013-04-08 09:46:23

标签: mongodb hadoop couchdb bigdata nosql

我有一个监控设备的Saas应用程序。

我开发了一个监控平台传感器。 我的应用程序目前监控大约100,000个传感器。 每15分钟记录一次值。

每个测量值当前存储在一个MySQL表中(timestamp => value)。 要限制MySQL表中的行数,单个传感器的所有点都会合并到每日日志中。

传感器数量呈指数增长。 我的BDD已经100GB

根据这些措施,我必须进行合并daily, monthly, annual and total

我的应用程序需要快速访问最近的数据,但我必须保留历史至少10年并且可以咨询它们。

NoSQL architectures似乎是存储大量数据并进行整合的解决方案。

哪种解决方案最适合存储此类数据。

我测试了CouchDB。我在不同的NoSQL solution (Hadoop,cassandra, mongodb...)

之间犹豫不决

我正在寻找有关这次经历的反馈。

1 个答案:

答案 0 :(得分:0)

我会根据你对你提到的一些技术的经验给出建议。

使用HDFS / Flume / Hadoop

您可以考虑只编写纯文本文件,然后使用Flume(http://flume.apache.org/)将它们移动到HDFS(http://en.wikipedia.org/wiki/Apache_Hadoop#Hadoop_Distributed_File_System)。

之后,您可以使用Hadoop及其所有工具针对存储在HDFS中的平面文件编写map / reduce作业。 HDFS将允许您非常好地扩展存储大小。

使用Mongo

您可以在Mongo中设置副本集并水平扩展以存储日志数据,但对于副本集而言,100GB和增长可能有点太大。 Mongo中的副本集(概念上与“群集”相同)无限缩放。

如果您发现重载副本集,可以对日志信息进行分片(可能是传感器和id条目?),然后通过添加节点可以无限扩展。

- 我会找到一些你喜欢编写查询的东西。很多解决方案都会横向扩展,但并非所有解决方案都围绕着它们。