我面临着一种我以前从未尝试过解决的新问题。所以我希望有比我更有知识的人提供一些正确方向的指示:-)
一位 friend 请我帮他设计一个生产线的控制系统。这个项目听起来真的很有趣,我无法停止思考它。
我已经发现我可以使用 Node.js 服务器来控制系统。到目前为止一切顺利(HTML5 界面来了)!但我真正希望这个系统脱颖而出的是系统指标的集合。系统会报告各种情况,例如温度、流量等,并且这些指标每秒每个指标报告数百次......并且全天候(24/7)运行。
我的想法是将其保存在 MongoDb 数据库中,并对此进行一些实时统计。如果你愿意的话,“竞争”似乎将其保存在 SQL Server 数据库中,并允许运算符(operator)将聚合数据导出到 Excel,并在 Excel 中进行统计。
使用 MongoDb 进行实时统计的策略是什么?
我真的很想根据这些指标提供即时反馈和监控。例如过去 24 小时的平均温度、峰值等,还可以启用警报。服务器上不会进行太多高级统计。如果需要,我会将数据导出到 SPSS 等程序。
MongoDb 适合吗?我喜欢使用 Linux 机器,而不是带有 SQL Server 和 WinForms 控制界面的 Windows 机器。仅许可费就足以让我望而却步,尽管我知道购买机器的人可能并非如此。
这不会放置在云端,而是放置在网络上的单个服务器上。在正在操作的机器旁边,我将放置一个触摸界面,该界面将通过浏览器联系 node.js 服务器以调用 PLC 命令。可以有多台机器需要控制,并且它们都将由同一个中央 Node.js 服务器控制。
机器由 http://beckhoff.com/ 的 PLC Controller 控制。 .
就 MongoDb 而言,我并不是一个完全的新手,但我从未将我所做的任何东西投入生产,而且我不会将 MongoDb 放在我的简历中......还没有!
编辑:看来 $inc 运算符是正确的选择。但是,如果我既不需要每日平均值和每小时平均值,也不需要使用 socket.io 每秒更新屏幕上的图表数据的连续源,该怎么办?为我需要的每个聚合更新文档是一个好主意。我确实也想保存每个测量值,但也许我可以每秒聚合一次,这样我就不会为每个指标每秒存储最多 1000 条记录?
最佳答案
MongoDB 绝对可以用于您的场景。看http://www.slideshare.net/pstokes2/social-analytics-with-mongodb , http://docs.mongodb.org/manual/use-cases/pre-aggregated-reports/或者 Real-time statistics: MySQL(/Drizzle) or MongoDB?有关此主题的更多信息
关于node.js - MongoDb 用于收集生产数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17754234/