时序数据库之InfluxDB的基本操作
1.进入Influxdb的客户端
1 | [root@activity_sentinel ~] # influx |
2.数据库的操作
-
显示所有的数据库名
1 2 3 4 5 6 | > show databases name: databases name ---- _internal telegraf |
-
新建数据库
1 2 3 4 5 6 7 8 9 | > create database Monitor > show databases // 查看Monitor库 name: databases name ---- _internal telegraf Monitor > |
-
删除数据库
1 | > drop database Monitor |
-
使用某个数据库
1 2 3 | > use telegraf Using database telegraf > |
-
查看此数据库下的所有表名称
1 2 3 4 5 6 7 | > show measurements name: measurements name ---- cpu disk diskio |
3.数据表的操作
-
新建表
InfluxDB中没有显式的新建表的语句,只能通过insert数据的方式来建立新表。
1 | insert Test, hostname =activety_sentinel value=666 |
其中 Test 就是表名,hostname是索引(tag),value=xx是记录值(field),记录值可以有多个,系统自带追加时间戳
1 2 3 4 5 6 | > select * from Test name: Test time hostname value ---- -------- ----- 1648275500109414508 activety_sentinel 666 > |
或者添加数据时,自己写入时间戳
1 | insert Test, hostname =activety_sentinel value=666 1435362189575692182 |
-
删除表
1 | > drop measurement Test |
-
向表中插入一条数据
1 | > insert Test, hostname =server1 value=888 |
-
删除表中的一条数据,根据时间戳time来删除一条数据
1 | > delete from Test where time =1648276975654173174 |
4.数据保存策略(Retention Policies)
influxDB是没有提供直接删除数据记录的方法,但是提供数据保存策略,主要用于指定数据保留时间,超过指定时间,就删除这部分数据。
-
查看当前数据库保存策略(Retention Policies)
1 2 3 4 | > show retention policies on "telegraf" //telegraf 是数据库名 name duration shardGroupDuration replicaN default ---- -------- ------------------ -------- ------- autogen 240h0m0s 168h0m0s 1 true |
-
创建新的保存策略
1 | create retention policy "save" on "telegraf" duration 150h replication 1 default; //save 是自定义的新策略名称;150h是保存时间; replication 1:副本个数,一般为1就可以了;default:设置为默认策略 |
-
修改保存策略
1 | alter retention policy "save" on "telegraf" duration 180h replication 1 default; // 数据保存180h |
-
删除保存策略
1 | drop retention policy "save" on "telegraf" |
5.连续查询(Continuous Queries)
InfluxDB的连续查询是在数据库中自动定时启动的一组语句,语句中必须包含 SELECT
关键词和 GROUP BY time()
关键词。
InfluxDB会将查询结果放在指定的数据表中。
目的:使用连续查询是最优的降低采样率的方式,连续查询和存储策略搭配使用将会大大降低InfluxDB的系统占用量。而且使用连续查询后,数据会存放到指定的数据表中,这样就为以后统计不同精度的数据提供了方便。
-
新建连续查询示例
1 | CREATE CONTINUOUS QUERY monitorclient ON telegraf BEGIN SELECT mean(connected_clients), MEDIAN(connected_clients), MAX(connected_clients), MIN(connected_clients) INTO redis_clients_30m FROM redis_clients GROUP BY ip,port, time (30m) END |
sql含义:在" telegraf " 库中新建了一个名为 " monitorclient " 的连续查询,每三十分钟取一个connected_clients字段的平均值、中位值、最大值、最小值 redis_clients_30m 表中。使用的数据保留策略都是 default。
-
显示所有已存在的连续查询
1 | show continuous queries |
-
删除Continuous Querie
1 | drop continuous query monitorclient ON telegraf // monitorclient 是连续查询的名称; telegraf 是数据库名称 |
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· .NET10 - 预览版1新功能体验(一)