スキーマ
スキーマデザインについては本家の資料を読むのが良さそう。
https://docs.influxdata.com/influxdb/v1.7/concepts/schema_and_data_layout/
- タグはインデクス化される
- タグに多様な値を入れるな
- UUID, ランダム文字列, ハッシュなどを入れるな
- タグ値のカーディナリティ(一意性)が高いとメモリをたくさん消費する
- タグに符号化されたデータを埋め込むな
- だめ
- location=plot-1.north
- location=plot-2.midwest
- よい
- plot=1,region=north
- plot=2,region=midwest
- だめ
- メジャメントに符号化されたデータを埋め込むな
- だめ
- blueberries.plot-1.north
- blueberries.plot-1.midwest
- よい
- weather_sensor,crop=blueberries,plot=1,region=north
- weather_sensor,crop=blueberries,plot=2,region=midwest
- だめ
クエリ
INSERT
メジャメント名 + タグ、 値、 タイムスタンプを順に渡す。それぞれの間はホワイトスペースで区切る。
タイムスタンプを省略すると現在時刻で記録される。
> INSERT environment humidity=28.7
> INSERT environment humidity=60.7
SELECT
SQLと似た構文で問い合わせる。
> SELECT * FROM environment
name: environment
time humidity
---- --------
2019-09-18T14:48:27.3243244Z 26.8
2019-09-18T14:49:46.5689408Z 60.7
influxdbの特徴でもある時刻のグループ処理。
10秒毎にグループして平均値を取る。値のない部分は線形補間する( FILL()
は linear
の他に、 previous
, none
, null
を取る)。 WHERE
句で対象を絞り込まないと、現在時刻まで集計してしまうので注意。
> SELECT MEAN("humidity") FROM environment WHERE time < '2019-09-18T14:49:47Z' GROUP BY time(10s) FILL(linear)
name: environment
time mean
---- ----
2019-09-18T14:48:20Z 26.8
2019-09-18T14:48:30Z 31.0375
2019-09-18T14:48:40Z 35.275000000000006
2019-09-18T14:48:50Z 39.5125
2019-09-18T14:49:00Z 43.75
2019-09-18T14:49:10Z 47.987500000000004
2019-09-18T14:49:20Z 52.22500000000001
2019-09-18T14:49:30Z 56.462500000000006
2019-09-18T14:49:40Z 60.7
DELETE
SQLのように削除できる。時刻フォーマットが文字列の場合には '
でくくる( "
ではない)。
> DELETE FROM environment WHERE time='2019-09-18T14:49:46.5689408Z'
> SELECT * FROM environment
name: environment
time humidity
---- --------
2019-09-18T14:48:27.3243244Z 26.8
時刻フォーマットの切り替え
influx
コマンドの起動時に -precision
オプションによって切り替える。
$ influx -port 18086 -precision rfc3339
> SELECT * FROM environment
name: environment
time humidity
---- --------
2019-08-21T01:12:26.313999872Z 52.95
システム問い合わせ
MySQL風のクエリでシステムに問い合わせできる。
データベース一覧
> SHOW DATABASES
name: databases
name
----
db0
_internal
メジャメント一覧
> SHOW MEASUREMENTS
name: measurements
name
----
environment