今まで取り組んだことのない新しいタイプの問題に直面しています。だから、私よりも知識のある人が正しい方向に向けていくつかの指針を望んでいます:-)
友人から、生産ラインの制御システムの設計を手伝ってほしいと頼まれました。このプロジェクトはとても面白そうで、考えずにはいられません。
node.js サーバーを使用してシステムを制御できることは既にわかっています。これまでのところ、とても良いです (HTML5 インターフェースがここに来ました)! しかし、私が本当にこのシステムを際立たせたいのは、システム メトリックの収集です。システムは、温度、流量などのあらゆる種類のものを報告し、これらのメトリックは、メトリックごとに毎秒数百回報告されます...そしてこれは24時間年中無休で実行されます.
私の考えは、これを MongoDb データベースに保持し、これについてリアルタイムの統計を行うことです。「競争」は、これをSQLサーバーデータベースに保存し、オペレーターが集計データをExcelにエクスポートし、Excelで統計を行うことを可能にしているようです。
MongoDb を使用してリアルタイム統計を行うための戦略は何ですか?
これらの指標に基づいて、すぐにフィードバックとモニタリングを提供したいと思っています。過去 24 時間の平均気温、スパイクなど、またアラートを有効にします。サーバー上で行われる高度な統計はあまりありません。それが必要な場合は、SPSS などのプログラムへのデータのエクスポートを有効にします。
MongoDb はそれに適していますか? SQL Server と WinForms コントロール インターフェイスを備えた Windows マシンではなく、Linux マシンを使用したいと考えています。ライセンス料だけでも私は気が遠くなりますが、機械を購入する人にとってはそうではないことはわかっています。
これはクラウドではなく、ネットワーク上の単一のサーバーに配置されます。操作中のマシンの横にタッチ インターフェースを配置します。このインターフェースは、ブラウザーを介して node.js サーバーに接続し、PLC コマンドを呼び出します。制御が必要な複数のマシンが存在する可能性があり、それらはすべて同じ中央 node.js サーバーによって制御されます。
機械は、 http://beckhoff.com/の PLC コントローラーによって制御されます。
私は MongoDb に関しては完全な初心者ではありませんが、自分が作成したものを製品化したことがなく、履歴書に MongoDb を載せるつもりはありません... まだ!
編集: $inc 演算子が適しているようです。しかし、socket.io を使用して、1 日の平均と 1 時間ごとの平均、および画面上のチャートを毎秒データで更新する継続的なフィードの両方が必要ない場合はどうすればよいでしょうか。必要な集計ごとにドキュメントを更新することをお勧めします。私も本当にすべての測定値を保存したいのですが、おそらくそれを 1 秒ごとに集計できるので、メトリックごとに 1 秒あたり最大 1000 レコードを保存しませんか?