Debian 12 bookworm
Sponsored Link

InfluxDB : Basic Database Management2023/07/06

 
This is InfluxDB Basic Database Management example.
[1] Create Database.
root@dlp:~#
influx -username admin -password adminpassword

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

# create [test_database] database
> create database test_database 

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

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

# add all privileges to [serverworld] user on [test_database] database
> grant all on "test_database" to "serverworld" 

# add [read] privilege to [debian] user on [test_database] database
> grant read on "test_database" to "debian" 

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

> exit
[2] Insert data to database.
# InfluxDB data series
# ⇒ 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] is optional
# [timestamp] is optional ⇒ if [timestamp] is not specified, it is used current UNIX Time (nanosecond)
# possible to see UNIX Time (nanosecond) with [date] command ⇒ $ date +%s%N

# connect to [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

# insert data to [cpu] measurement
> insert cpu idle=99.50
> insert cpu idle=99.00
> insert cpu idle=99.30
> select * from cpu
name: cpu
time                idle
----                ----
1688601672845748376 99.5
1688601676926901128 99
1688601680775107208 99.3

# insert data to [weather] measurement
> 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
----                --------  -----------
1688601708746672792 hiroshima 20
1688601713339254836 hiroshima 22
1688601717819722751 osaka     18
1688601722868089561 osaka     19

# possible to search data with [WHERE]
> select * from weather where "location" = 'hiroshima' and temperature <= 20
name: weather
time                location  temperature
----                --------  -----------
1688601708746672792 hiroshima 20

# show [timestamp] with RFC3339 style
> precision rfc3339
> select * from weather
name: weather
time                           location  temperature
----                           --------  -----------
2023-07-06T00:01:48.746672792Z hiroshima 20
2023-07-06T00:01:53.339254836Z hiroshima 22
2023-07-06T00:01:57.819722751Z osaka     18
2023-07-06T00:02:02.868089561Z osaka     19

> exit
[3] Delete data.
# connect with RFC3339 style

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
----                           --------  -----------
2023-07-06T00:01:48.746672792Z hiroshima 20
2023-07-06T00:01:53.339254836Z hiroshima 22
2023-07-06T00:01:57.819722751Z osaka     18
2023-07-06T00:02:02.868089561Z osaka     19

# delete data that [timestamp] are older than [2023-07-06 00:01:50]
> delete from weather where time <= '2023-07-06 00:01:50'
> select * from weather
name: weather
time                           location  temperature
----                           --------  -----------
2023-07-06T00:01:53.339254836Z hiroshima 22
2023-07-06T00:01:57.819722751Z osaka     18
2023-07-06T00:02:02.868089561Z osaka     19

# delete data that tags are [location = hiroshima]
> drop series from "weather" where "location" = 'hiroshima'

# * delete *** ⇒ not drop series from Index, possible to search with Time Interval
# * drop *** ⇒ drop series from Index, impossible to search Time Interval

# delete [measurement]
> drop measurement "cpu"
> show measurements
name: measurements
name
----
weather

# delete database
> drop database "test_database"
> show databases
name: databases
name
----
_internal

> exit
Matched Content