MongoDb收集生产数据

我面临着一个新的问题,我从来没有尝试过。 所以我想通过比我更有见识的人来指向正确的方向:-)

有朋友问我是否帮他devise生产线的控制系统。 这个项目听起来很有趣,我不能停止想这个。

我已经发现我可以使用node.js服务器来控制系统。 到目前为止这么好(HTML5接口,我们来了)! 但是我真正希望这个系统突出的地方在于系统指标的收集。 系统报告各种各样的东西,如温度,stream量等,这些度量每秒报告数百次,每秒24次。

我的想法是坚持这个在MongoDb数据库,并做一些实时统计。 如果您愿意的话,“竞争”似乎将其保存在SQL服务器数据库中,并允许操作员将汇总的数据导出到Excel中,并在Excel中进行统计。

使用MongoDb进行实时统计的策略是什么?

我真的很想根据这些指标提供即时反馈和监测。 如过去24小时内的平均温度,峰值等,并启用警报。 服务器上不会有太多的高级统计信息。 如果需要的话,我会启用数据导出到一个程序,如SPSS。

MongoDb是否适合? 我很乐意使用Linux机器,而不是使用SQL Server和WinForms控制接口的Windows机器。 单凭许可证费就足以让我失望,尽pipe我知道购买机器的人可能不是这种情况。

这不会放在云中,而是放在networking上的一台服务器上。 在正在操作的机器旁边,我将放置一个触摸界面,通过浏览器将联系node.js服务器来调用PLC命令。 可以有多台需要控制的机器,它们全部由相同的中央node.js服务器控制。

机器由http://beckhoff.com/的PLC控制器控制。

对于MongoDb,我并不是一个完全的新手,但我从来没有把我制作的任何东西投入到生产中,而且我也不会把MongoDb放在我的CV上。

编辑:看来,$ inc操作符是要走的路。 但是,如果我不想每天和每小时的平均数以及连续的数据提供,每秒使用socket.io更新屏幕上的数据。 更新我需要的每个集合的文档是一个好主意。 我真的也想保存每一个测量值,但也许我可以每秒计算一次,所以我不会每秒存储1000条logging。

MongoDB绝对可以用于你的场景。 看http://www.slideshare.net/pstokes2/social-analytics-with-mongodb,http://docs.mongodb.org/manual/use-cases/pre-aggregated-reports/或实时统计: MySQL(/ Drizzle)还是MongoDB? 有关这个话题的更多信息

我真正想要的是聚合框架: http : //docs.mongodb.org/manual/tutorial/aggregation-examples/

这给了我想要看到的那种统计数据。 使用它来计算总和和平均值,然后还可以在需要时进行即席查询。

有关性能的一点洞察,请阅读这个真棒博客! http://devsmash.com/blog/mongodb-ad-hoc-analytics-aggregation-framework

另外,任何想要做这样的事情的人都应该看看这个,看看如何保存个人事件。 例如,我不需要保存超过一周的数据,所以滚动日志应该对我来说已经足够了: http : //blog.mongodb.org/post/172254834/mongodb-is-fantastic-for-logging

有了这个,我非常接近于一个非常好的设置,我开始有信心,这是一个MySQL或MSSQL的好select。