SIRC社のIoT電力センサーを使った電力見える化アプリケーションを作成するにあたり、DBはinfluxDBを使うことを考えています。
そのため、まずはinfluxDBはどういう風に使えるのか、他の方々が作られたサイトを見ながらinfluxDBについて学んでいきます。
influxDBをDockerで動かす
InfluxDBことはじめ のサイトをみて確認
$docker run --rm --name influxdb -p 8086:8086 -v PWD:/var/lib/influxdb influxdb
$ docker ps でinfluxDBのContainer IDを確認
Container IDを指定してコンテナの中に入ります。
ここで、influxDBのV2からコマンドが変わっていることを知り、V2でのやり方が表記されているサイトを参考に切り替え。
コンテナから退出し、influx setupをしようとしたところ、influxdb-clientをいれる必要があるとのこと。
無事にインストールできた様子。
一応、influxDBが動いているか確認すると、動いていない? ここで、Dockerで動かしていることに気づく。
改めてContainerに入り、influx setup をしたところ無事に動作。ここからユーザーの作成をしていきます。
influxDB setup
これでユーザーを作成することができました。
$ influx auth list でユーザーを確認
ブラウザからinfluxDBにアクセス
ブラウザから http://localhost:8086/ を開くとログイン画面が表示されます。
左の縦メニューからLoad Dataを選択
上のタブから”BUCKETS”を選択
CREATE BUCKETをクリックして新しいBUCKETを作成しようとおもったら、setupの時に作成した”tokyo”があったのでこれを使います。
Line Protocolを使ってbucketにデータを挿入
ADD DATAを押してLineProtocolからデータの挿入をします。
InfluxDB v2: GUI の使い方 に掲載されているデータをそのままコピペします。bucketがtochigiだった理由がようやくわかりましたが、テストなので気にせずWRITE DATA。
無事にデータがBUCKETにはいりました。
Data Explorerでデータの確認
Data Explorerでデータを確認します。
View Raw Data をOn,右にあるAGGREGATE FUNCTIONのmeanのチェックを外します。
#group,false,false,true,true,false,false,true,true
#datatype,string,long,dateTime:RFC3339,dateTime:RFC3339,dateTime:RFC3339,string,string,string
#default,_result,,,,,,,
,result,table,_start,_stop,_time,_value,_field,_measurement
,,0,2024-05-06T03:20:21.740190953Z,2024-05-06T04:20:21.740190953Z,2024-05-06T04:15:43.957801772Z,2004-5-29,date_mod,t0921
,,1,2024-05-06T03:20:21.740190953Z,2024-05-06T04:20:21.740190953Z,2024-05-06T04:15:43.957801772Z,宇都宮,name,t0921
#group,false,false,true,true,false,false,true,true
#datatype,string,long,dateTime:RFC3339,dateTime:RFC3339,dateTime:RFC3339,double,string,string
#default,_result,,,,,,,
,result,table,_start,_stop,_time,_value,_field,_measurement
,,2,2024-05-06T03:20:21.740190953Z,2024-05-06T04:20:21.740190953Z,2024-05-06T04:15:43.957801772Z,93215,population,t0921
CSVでダウンロードすると、上記のようなデータとなりました。
queryを表記してsubmit
queryでどんなデータにするか設定した後、左上からグラフを選択し、右下のsubmitを押すと、このようにqueryの結果が表示され、グラフになるようなデータだとグラフになるようです。
まとめ
以上、influxDBをDockerで動かしてLineProtocolからデータをいれてみました。
次はNode-REDからデータをinfluxDBに格納する方法についても検証していきたいと思います。