influxDBをDockerで動かしてLineProtocolからデータをいれてみた

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でのやり方が表記されているサイトを参考に切り替え。

InfluxDB v2: GUI の使い方

コンテナから退出し、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に格納する方法についても検証していきたいと思います。