Smart Houseの約12個のセンサーからデータを収集するアプリケーションがあります。これは、次の表形式のMySQLデータベースにデータを格納する。収集されたセンサーデータ分析のソフトウェア
CREATE TABLE IF NOT EXISTS `datapoints` (
`PointID` int(11) NOT NULL,
`System` varchar(50) NOT NULL,
`Sensor` varchar(50) NOT NULL,
`Value` varchar(50) NOT NULL,
`Timestamp` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
PRIMARY KEY (`PointID`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
System
フィールドは、センサーをグループ化するために、例えば、「空気」システムは「温度」及び「湿度」センサ、および "を有していますソーラーパネル "システムには"電力生産量(kW) "と"生産量(kWh) "があります。フィールドはすべてvarchar
です。センサーから複数のデータ型が入っていて、元のデータベース設計者が簡単に解決策をとったからです。 (このデータ構造はあまり効率的ではありませんが、変更するには遅すぎます)
センサーには、気温、湿度、ソーラーパネルの出力、太陽熱温水器の温度などが含まれています。
ここでは毎日数万点のデータポイントを収集するこのデータベースを用意しています。今までは、データベースにクエリを送信して、時間の経過とともにセンサデータのグラフを作成するアプリケーションを使用しました。しかし、現在は数ギガバイトのデータがあり、最終的にはロギングハードウェア上のストレージスペースが使い果たされます。
私はデータから統計を収集して削除する方法を探しています。私は[Google Analytics | Piwik | Awstats]を選択します。問題は、どこから始めたらいいかわからないということです。私は、例えば、より最近の時代から、より詳細なデータを見ることができるようにしたい:時間ごとのデータの全てのデータ
- 1日分を
- 私は毎週、毎月の統計を永久に保ちたいと思う。
しかし、私はあまりデータを平滑化したくありません。最終的には、データをスムーズにする必要がありますが、可能な限り詳細に保ちたいと思います。例えば、電力生産に大きなスパイクがある場合、毎週のデータで毎時のデータにスムージング(低い)してから、もう一度(下げる)、その後週次のデータで再び(下げる)平均の平均はすべての点の平均と同じではないため、スパイクがあったことは反映されません。
既にこれを行うソフトウェアはありますか?そうでない場合は、何が良い方法ですか?どの言語でもできますが、他のプロジェクトメンバーがすでに知っている言語で、ロギングハードウェアが既に設定されているため、優先順位は.NET、PHP、またはC(Windowsの順)です。