我面临着一种我以前从未尝试过解决的新型问题。因此,我希望比我知识渊博的人为正确的方向提供一些指导:-)
有朋友请我帮他设计生产线的控制系统。这个项目听起来很有趣,我不能停止思考它。
我已经发现我可以使用 node.js 服务器来控制系统。到目前为止一切顺利(HTML5 界面我们来了)!但我真正希望这个系统脱颖而出的地方在于系统指标的收集。系统报告各种事物,例如温度、流量等,这些指标每秒报告多达数百次……而且全天候运行 24/7。
我的想法是将其保存在 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 条记录?