InfluxDBを利用して1日の環境データを集計する


InfluxDBを利用して
1日の環境データを集計しましたので
手順をまとめておきます。

今まで家庭菜園で環境モニタリングとして
外気温度、相対湿度、土壌水分、土壌温度を取得していました。

取得したデータをInfluxDBに保存したものをGrfanaを利用して時系列にグラフ化することは行っていたのですが、それ以上のことは行っていませんでした。

これだけではあまり意味があるとは思えませんが安定して動いているようです。
せっかくデータが取得できていますので、これから分析に利用していこうと考えています。

その手始めとして、今回は前日の最高温度、最低温度、平均温度を表示させてみます。

今回はIndluxDBからデータを呼び出す条件でデータの選択、集計を行っていきます。
InfluxDBではクエリを行う際にはinfluxQLというものを利用します。
InfluxDBについて基礎的なことはこちらにまとめてありますので興味があれば見てください。

まずは昨日分のデータの呼び出しから試してみます。
InfluxDBは時系列データベースなので、呼び出し条件を時間にすることは簡単です。

SELECT key FROM Measurement WHERE time > now() -1d

で呼び出すことが出来ます。

今回は1日の中での最高温度を呼び出したいわけですが、
InfluxDBにはMAX関数という最大値を呼び出す関数が用意されていますので、この関数を使用します。

SELECT max("Wtemp") AS "max_temp_c" FROM "SunnyLettus" WHERE time > now() -1d

wtempの部分がカラム、max_temp_cの部分が呼び出した後につけるkey、SunnyLettusno部分がmeasurementになっています。
これで、24時間スパンでの最高温度が呼び出されました。

同様に
最小値選択 MIN()
平均値集計 MEAN()
等も用意されていますので、状況に応じて使い分けます。

ねっ 簡単でしょう。

参考情報
InfluxDBについて最初に知るべき10のこと
公式ドキュメント
FAQ