はじめに
まず最初に数万または数十万単位のセンサの情報をそれぞれデータベースに毎秒入れるのは現実的ではありません。おそらくデータベースの処理速度が追いつかなくて詰まると思います。
そこで、私の知っている中でIoT関係のビックデータ処理として有名なのがMicrosoft Azureのサービスを使用したシステム構築です。AzureとはMicrosoft社が提供しているクラウドサービスで様々な機能を持ったサービスを使用することができます。その中から
- Event Hubs
- Stream Analytics
- Power BI
を使うと構築できると思います。質問の追加でコメントいただきました要件より、データの保存はせず、現時点での値を確認できるのみという構成で説明します。
Event Hubs
Event Hubsはセンサ情報をリアルタイムに収集するサービスです。エンドポイントをインターネット上に作成し、そこにセンサ値をつけてアクセスするとセンサ値を抜き出して集めてくれます。このサービスが優れているところは毎秒数百万件のイベントを処理できることです。これを使用すれば質問にあるような数十万単位のセンサが発するイベントの第一次の受け口になります。
Event Hubs
Stream Analytics
Stream AnalyticsはEvent Hubsで収集した情報を整形(クレンジング)して次の段階へ渡します。Event Hubsでは数十万のデータが毎秒発生しますが、その発生したデータにはいらない部分やデータ形式を変えなければならない部分などが含まれることが予想されます。それをクレンジングするのがStream Analyticsの役割です。このサービスのメリットはEvent Hubs同様毎秒数百万件のイベントを処理できることに加え、整形をSQL文に似た構文で行えることです。質問者様はデータベースで管理することを思いつかれましたことからデータベースを使用したことがあると勝手に推察いたしますと、これもメリットになると思います。
Stream Analytics
Power BI
Stream Analyticsで整形したデータを表で数十万行表示させられても見るに耐えません。そこでデータの表示方法が重要になるかと思います。その際におすすめしたいのがPower BIです。厳密にいうとPower BIはAzureのサービスではなく、Office 365のサービスなのですが、基本機能は無料で使用できます。このサービスは動的なExcelといったイメージです、グラフやメーターなど様々な形式でデータを表示できます。これの優れているところはリアルタイムにデータの更新と表示が行えるところです。このPower BIもEvents Hubsと同じようにエントリポイントを作成し、そこにデータをつけてプッシュするとPower BI内で自動的に描画されます。これにより、毎秒変わるデータを自動でリアルタイムに更新、描画することができます。
Power BI
全体の構成
全体像はこの図が的確に示されています。データは左から右に進んでいきます。最初にEvent Hubsでデータをとりあえず受けて、Stream Analyticsで整理、Power BIで表示、といった構成です。図ではデータの保存にSQL、分析にMachine Learningなども描かれていますが、データ保存の必要がないので使用しなくて良いと思います。
最後に
Azure はここでは書ききれないくらい多くのサービスがあり、今回紹介したサービスも他に機能が沢山あります。この方式の採用を検討されるようでしたら、サービス名を入れて検索すると様々な情報がでてくると思います。
回答になったかわかりませんが、問題解決の一助になれば幸いです。