Ubuntu 22.04
Sponsored Link

InfluxDB : データベース 基本操作2022/10/26

 
InfluxDB のデータベースの基本操作です。
[1] データベースを作成する。
root@dlp:~#
influx -username admin -password adminpassword

Connected to http://localhost:8086 version 1.6.7~rc0
InfluxDB shell version: 1.6.7~rc0

# [test_database] 作成
> create database test_database 

> show databases 
name: databases
name
----
_internal
test_database

> show users 
user        admin
----        -----
admin       true
ubuntu      false
serverworld true

# [serverworld] ユーザーに [test_database] の全権限を付与
> grant all on "test_database" to "serverworld" 

# [ubuntu] ユーザーに [test_database] の [read] 権限を付与
> grant read on "test_database" to "ubuntu" 

> show grants for "serverworld" 
database      privilege
--------      ---------
test_database ALL PRIVILEGES

> exit
[2] データベースにデータを投入する。
# InfluxDB のデータ形式
# ⇒ measurement,tag_set field_set timestamp
# insert <measurement>[,<tag_key>=<tag_value>[,<tag_key>=<tag_value>]] <field_key>=<field_value>[,<field_key>=<field_value>] [<timestamp>]
#
# [tag_set] はオプショナル
# [timestamp] は省略可 ⇒ 省略した場合は現在の UNIX Time (ナノ秒単位) が使用される
# UNIX Time (ナノ秒) は [date] コマンドで確認可 ⇒ $ date +%s%N

# [test_database] に接続

root@dlp:~#
influx -username serverworld -password userpassword -database test_database

Connected to http://localhost:8086 version 1.6.7~rc0
InfluxDB shell version: 1.6.7~rc0

# [cpu] メジャメントに [idle] 値をセットしてデータ投入
> insert cpu idle=99.50
> insert cpu idle=99.00
> insert cpu idle=99.30
> select * from cpu
name: cpu
time                idle
----                ----
1666748173588387671 99.5
1666748179269471433 99
1666748184725627241 99.3

# [weather] メジャメントに [location] タグと [temperature] 値をセットしてデータ投入
> insert weather,location=hiroshima temperature=20
> insert weather,location=hiroshima temperature=22
> insert weather,location=osaka temperature=18
> insert weather,location=osaka temperature=19
> select * from weather
name: weather
time                location  temperature
----                --------  -----------
1666748269677044859 hiroshima 20
1666748273989196156 hiroshima 22
1666748278925855820 osaka     18
1666748282790020300 osaka     19

# [WHERE] で条件を指定して表示
> select * from weather where "location" = 'hiroshima' and temperature <= 20
name: weather
time                location  temperature
----                --------  -----------
1666748269677044859 hiroshima 20

# [timestamp] を RFC3339 で表示
> precision rfc3339
> select * from weather
name: weather
time                           location  temperature
----                           --------  -----------
2022-10-26T01:37:49.677044859Z hiroshima 20
2022-10-26T01:37:53.989196156Z hiroshima 22
2022-10-26T01:37:58.92585582Z  osaka     18
2022-10-26T01:38:02.7900203Z   osaka     19

> exit
[3] データを削除する。
# RFC3339 を指定して接続

root@dlp:~#
influx -username serverworld -password userpassword -database test_database -precision rfc3339

Connected to http://localhost:8086 version 1.6.7~rc0
InfluxDB shell version: 1.6.7~rc0

> select * from weather
name: weather
time                           location  temperature
----                           --------  -----------
2022-10-26T01:37:49.677044859Z hiroshima 20
2022-10-26T01:37:53.989196156Z hiroshima 22
2022-10-26T01:37:58.92585582Z  osaka     18
2022-10-26T01:38:02.7900203Z   osaka     19

# [timestamp] が [2022-10-26 01:37:50] より以前のデータを削除
> delete from weather where time <= '2022-10-26 01:37:50'
> select * from weather
name: weather
time                           location  temperature
----                           --------  -----------
2022-10-26T01:37:53.989196156Z hiroshima 22
2022-10-26T01:37:58.92585582Z  osaka     18
2022-10-26T01:38:02.7900203Z   osaka     19

# [location = hiroshima] のデータを削除
> drop series from "weather" where "location" = 'hiroshima'

# * delete *** ⇒ Index から系列を削除しない, Time Interval による条件指定可
# * drop *** ⇒ Index から系列を削除, Time Interval による条件指定不可

# [measurement] を削除する場合は以下
> drop measurement "cpu"
> show measurements
name: measurements
name
----
weather

# データベースを削除する場合は以下
> drop database "test_database"
> show databases
name: databases
name
----
_internal

> exit
関連コンテンツ