MongoDb用于收集生产数据

时间:2013-07-19 19:41:57

标签: node.js mongodb plc real-time-data

我正面临着一种我以前没有尝试过的新问题。所以我想要一个比我更有知识的人在正确的方向上指点: - )

我被朋友要求帮他设计生产线控制系统。该项目听起来非常有趣,我不能停止思考它。

我已经发现我可以使用node.js服务器来控制系统。到目前为止一直很好(我们来的HTML5界面)!但我真正希望这个系统脱颖而出的是系统指标的集合。系统报告各种事物,如温度,流量等,这些指标每公尺每秒报告几百次......并且每周7天每天24小时运行。

我的想法是在MongoDb数据库中保留它,并对此做一些实时统计。如果您愿意,“竞争”似乎将其保存在SQL服务器数据库中,并允许操作员将聚合数据导出到Excel,并在Excel中进行统计。

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

我真的希望根据这些指标提供即时反馈和监控。例如过去24小时的平均温度,尖峰等,并且还启用警报。在服务器上不会有太多高级统计信息。如果需要,我会启用将数据导出到SPSS等程序。

MongoDb是否适合这种情况?我很想使用Linux机器而不是带有SQL Server和WinForms控制接口的Windows机器。仅仅许可证费用就足以让我失望,虽然我知道购买机器的人可能并非如此。

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

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

对于MongoDb,我不是一个完整的新手,但我从来没有把我制作的任何东西投入生产,我也不会把MongoDb放在我的简历上......但是!

编辑:似乎$ inc运营商是要走的路。但是,如果我不是每天和每小时的平均值以及使用socket.io每秒更新数据在屏幕上的图表,那么该怎么办?为我需要的每个聚合更新文档是一个好主意。我真的也想保存每一个测量值,但也许我可以每秒聚合一次,所以每个度量标准每秒最多不能存储1000条记录?

2 个答案:

答案 0 :(得分:1)

答案 1 :(得分:1)

我真正想要的是聚合框架: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。