influxDB

influxDB

influxDB快速入门实战教程_influxdb教程-CSDN博客

springboot整合influxDB:

SpringBoot整合InfluxDB-CSDN博客

使用场景

使用于海量时序数据的高性能读、高性能写、高效存储与实时分析

  • 时序数据库是一种按照时间存储的数据库。解决是海量数据的高效插入查询。主要应用在互联网的大规模数据统计分析上面,物联网的信息收集方面。

    image-20240527165317823

influxdb数据存储架构

每个database 可以有多个RP(retention policy数据保存策略),但是只有一个默认策略。策略下按照时间段分为多个ShardGroup,每个ShardGroup存储一个时间段的数据。每个shardgroup下分多个shard来存储数据。

在这里插入图片描述

创建数据库

1
create database influx

设置数据库属性

设置数据保留策略语法

1
CREATE RETENTION POLICY "influx_retention" ON "influx" DURATION 30d REPLICATION 1 DEFAULT
  1. CREATE RETENTION POLICY: 这部分是一个关键字,用于指示我们想要创建一个新的保留策略。但注意,这里似乎有一个小错误,应该是 RETENTION 而不是 RETENTION。正确的应该是 CREATE RETENTION POLICYCREATE RETENTION_POLICY(但在InfluxDB中,它实际上是 CREATE RETENTION POLICY 的拼写错误,应为 CREATE RETENTION POLICY)。
  2. “influx_retention”: 这是你想要创建的保留策略的名称。在此例中,保留策略的名称是 “influx_retention”。
  3. ON “influx”: 这指定了你想要在哪个数据库上创建这个保留策略。在这里,数据库的名称是 “influx”。
  4. DURATION 30d: 这指定了数据在该保留策略下的保留时间。在这里,数据将被保留30天(30d)。过了这个时间,数据将被自动从该保留策略中删除(除非有其他备份或快照)。
  5. REPLICATION 1: 这指定了数据的副本数。对于单节点InfluxDB实例,这通常设置为1。但在集群环境中,你可以设置更高的值以确保数据的冗余和可用性。
  6. DEFAULT: 这意味着当你向 “influx” 数据库写入新数据时,如果没有明确指定保留策略,那么数据将默认使用 “influx_retention” 这个保留策略。

所以,这个命令的目的是在 “influx” 数据库上创建一个名为 “influx_retention” 的保留策略,该策略的数据保留时间为30天,只有一个副本,并设置为默认保留策略。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
E:\APP\influxdb-1.7.4-1>influx.exe
Connected to http://localhost:8086 version 1.7.4
InfluxDB shell version: 1.7.4
Enter an InfluxQL query
> show databases
name: databases
name
----
_internal
> create database influx
> show databases
name: databases
name
----
_internal
influx
> use database influx
ERR: Database database influx doesn't exist. Run SHOW DATABASES for a list of existing databases.
DB does not exist!
> use influx
Using database influx
> create retention policy "influx_retention" on "influx" duration 30d replication 1 default
> SHOW RETENTION POLICIES ON influxdb
ERR: database not found: influxdb
> SHOW RETENTION POLICIES ON influx
name duration shardGroupDuration replicaN default
---- -------- ------------------ -------- -------
autogen 0s 168h0m0s 1 false
influx_retention 720h0m0s 24h0m0s 1 true
> ALTER RETENTION POLICY "influx_retention" ON influx DURATION 15d
> SHOW RETENTION POLICIES ON influx
name duration shardGroupDuration replicaN default
---- -------- ------------------ -------- -------
autogen 0s 168h0m0s 1 false
influx_retention 360h0m0s 24h0m0s 1 true
> DROP RETENTION POLICY "influx_retention" ON influx
> SHOW RETENTION POLICIES ON influx
name duration shardGroupDuration replicaN default
---- -------- ------------------ -------- -------
autogen 0s 168h0m0s 1 false
> create retention policy "influx_retention" on "influx" duration 30d replication 1 default
> show measurements
> show measurements
> use influx
Using database influx
> insert weather,altitude=1000,area=北 temperature=11,humidity=-4
> select * from weather
name: weather
time altitude area humidity temperature
---- -------- ---- -------- -----------
1716383325010261300 1000 北 -4 11
> precision rfc3339
> select * from weather
name: weather
time altitude area humidity temperature
---- -------- ---- -------- -----------
2024-05-22T13:08:45.0102613Z 1000 北 -4 11
> select * from weather
name: weather
time altitude area humidity temperature
---- -------- ---- -------- -----------
2024-05-22T13:08:45.0102613Z 1000 北 -4 11
> insert tem,parm1=1 reult=1
> insert tem,parm1=2 reult=2
> insert tem,parm1=3 reult=3
> select * from tem
name: tem
time parm1 reult
---- ----- -----
2024-05-22T13:14:14.4336263Z 1 1
2024-05-22T13:14:23.0149233Z 2 2
2024-05-22T13:14:29.7518358Z 3 3
> show users
user admin
---- -----
> create user "fansea" with password 'fansea'
> show users
user admin
---- -----
fansea false
> create user "admin" with password 'admin' with all privileges
> show users
user admin
---- -----
fansea false
admin true
> GRANT ALL PRIVILEGES ON influx TO fansea
> show users
user admin
---- -----
fansea false
admin true
> GRANT ALL PRIVILEGES ON influx TO admin
>