LoginSignup
1
4

More than 3 years have passed since last update.

InfluxDB の Data Layout

Posted at

- InfluxDB Data Layout

最初とっつきにくかった InfluxDB の Data Layout についてのまとめ。

  • InfluxDB に入れるデータはカンマやスペースで区切られた1行の String のデータから成り立つ。( Line Protocol と呼ばれる)
  • 1行は 1 Data Point と呼ばれ、Measurement, Tag, Field, TimeStamp が含まれる。 influx.001.jpeg
  • Measurement は表名で、Tag と Field は Index されるかどうか、型、クエリ時にできることなどが違う。 influx.002.jpeg
  • Tag と Field 両方とも WHERE句で指定できるが、GROUP BY は Tag だけで MAX/MIN/MEAN などの集計は Field に対してだけできる。
    influx.003.jpeg

  • 例えば各ノードのCPU使用率を入れる場合、 cpu_usage 表(measurement) に各ノードの CPU 使用率(usage)を field に指定し、各ノード名(node_name) を tag に指定する。

INSERT cpu_usage,node_name=mynode1 usage=30 1583240400000000000
INSERT cpu_usage,node_name=mynode2 usage=35 1583240400000000000
INSERT cpu_usage,node_name=mynode3 usage=40 1583240400000000000
INSERT cpu_usage,node_name=mynode1 usage=35 1583245800000000000
INSERT cpu_usage,node_name=mynode2 usage=40 1583245800000000000
INSERT cpu_usage,node_name=mynode3 usage=45 1583245800000000000

各ノードの平均 CPU 使用時間がこの SELECT文で得られる。

> SELECT MEAN(usage) FROM cpu_usage GROUP BY node_name
name: cpu_usage
tags: node_name=mynode1
time                 mean
----                 ----
1970-01-01T00:00:00Z 32.5

name: cpu_usage
tags: node_name=mynode2
time                 mean
----                 ----
1970-01-01T00:00:00Z 37.5

name: cpu_usage
tags: node_name=mynode3
time                 mean
----                 ----
1970-01-01T00:00:00Z 42.5

参考
- https://docs.influxdata.com/influxdb/v1.8/concepts/schema_and_data_layout/
- https://docs.influxdata.com/influxdb/v1.8/write_protocols/line_protocol_reference/
- https://docs.influxdata.com/influxdb/v1.8/query_language/

1
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
4