1

我面临着一种我以前从未尝试过解决的新型问题。因此,我希望比我知识渊博的人为正确的方向提供一些指导:-)

有朋友请我帮他设计生产线的控制系统。这个项目听起来很有趣,我不能停止思考它。

我已经发现我可以使用 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 条记录?

4

2 回答 2

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 更好的选择。

于 2013-07-21T07:04:51.907 回答
1

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

于 2013-07-19T20:44:42.627 回答