时序数据库之InfluxDB的基本操作
1.进入Influxdb的客户端
[root@activity_sentinel ~]# influx
文章图片
【时序数据库之InfluxDB的基本操作】
2.数据库的操作
- 显示所有的数据库名
> show databases name: databases name ---- _internal telegraf
- 新建数据库
> create database Monitor > show databases//查看Monitor库 name: databases name ---- _internal telegraf Monitor >
- 删除数据库
> drop database Monitor
- 使用某个数据库
> use telegraf Using database telegraf >
- 查看此数据库下的所有表名称
> show measurements name: measurements name ---- cpu disk diskio
3.数据表的操作
- 新建表
insert Test,hostname=activety_sentinel value=https://www.it610.com/article/666
其中 Test 就是表名,hostname是索引(tag),value=https://www.it610.com/article/xx是记录值(field),记录值可以有多个,系统自带追加时间戳
> select * from Test name: Test timehostnamevalue ----------------- 1648275500109414508 activety_sentinel666 >
或者添加数据时,自己写入时间戳
insert Test,hostname=activety_sentinel value=https://www.it610.com/article/6661435362189575692182
- 删除表
> drop measurement Test
- 向表中插入一条数据
> insert Test,hostname=server1 value=https://www.it610.com/article/888
- 删除表中的一条数据,根据时间戳time来删除一条数据
> delete from Test where time=1648276975654173174
4.数据保存策略(Retention Policies)
influxDB是没有提供直接删除数据记录的方法,但是提供数据保存策略,主要用于指定数据保留时间,超过指定时间,就删除这部分数据。
- 查看当前数据库保存策略(Retention Policies)
> show retention policies on "telegraf"//telegraf是数据库名 name duration shardGroupDuration replicaN default ---- -------- ------------------ -------- ------- autogen 240h0m0s 168h0m0s 1 true
- 创建新的保存策略
create retention policy"save"on "telegraf"duration 150h replication 1 default; //save 是自定义的新策略名称;150h是保存时间; replication 1:副本个数,一般为1就可以了;default:设置为默认策略
- 修改保存策略
alter retention policy "save" on "telegraf" duration 180h replication 1 default; //数据保存180h
- 删除保存策略
drop retention policy "save" on "telegraf"
5.连续查询(Continuous Queries)
InfluxDB的连续查询是在数据库中自动定时启动的一组语句,语句中必须包含
SELECT
关键词和 GROUP BY time()
关键词。InfluxDB会将查询结果放在指定的数据表中。
目的:使用连续查询是最优的降低采样率的方式,连续查询和存储策略搭配使用将会大大降低InfluxDB的系统占用量。而且使用连续查询后,数据会存放到指定的数据表中,这样就为以后统计不同精度的数据提供了方便。
- 新建连续查询示例
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。
- 显示所有已存在的连续查询
showcontinuous queries
- 删除Continuous Querie
dropcontinuous query monitorclientONtelegraf//monitorclient 是连续查询的名称; telegraf 是数据库名称
推荐阅读
- 小程序商店|小程序之100推荐(901~1000)
- 小程序商店|小程序之100推荐(801~900)
- C语言小白进阶之路|C语言——字符、字符串的输入输出
- 5分钟了解二叉树之LeetCode里的二叉树
- 华为云GaussDB亮相DAMS峰会,分享构建开放生态与数据库国产化经验
- 大促来临,你的数据库系统准备好了吗()
- 季刊速览丨华为云数据库社区2021.Q3季刊
- 万人逐鹿、十强争霸!华为云GaussDB数据库两大重量级赛事圆满落幕
- 开启新起点·筑梦新征程|中创教育乔迁之喜
- 玩转SpringBoot之定时任务@Scheduled线程池配置