InfluxDB简单用法

简介

1、什么是InfluxDB
InfluxDB(时序数据库),常用的一种使用场景:监控数据统计。每毫秒记录一下电脑内存的使用情况,然后就可以根据统计的数据,利用图形化界面(InfluxDB V1一般配合Grafana)制作内存使用情况的折线图;

可以理解为按时间记录一些数据(常用的监控数据、埋点统计数据等),然后制作图表做统计;

2、与传统数据库相关区别

和传统数据库相比,influxdb在相关概念上有一定不同,具体如下

influxDB中的名词 传统数据库中的概念 MySQL
database 数据库 database
measurement 数据库中的表 table
point 表中的一行数据 column

point的数据结构由时间戳(time)、标签(tags)、数据(fields)三部分组成,具体含义如下:
point 属性 含义
time 数据记录的时间,是主索引(自动生成)
tags 各种有索引的属性
fields 各种value值(没有索引的属性)

tag set:不同的每组tag key和tag value的集合;

field set:每组field key和field value的集合;

retention policy:数据存储策略(默认策略为autogen)InfluxDB没有删除数据操作,规定数据的保留时间达到清除数据的目的;

series:共同retention policy,measurement和tag set的集合;series(一般由:retention policy, measurement, tag set就共同组成),其含义如下:所有在数据库中的数据,都需要通过图表来展示,而这个series表示这个表里面的数据,可以在图表上画成几条线:通过tags排列组合算出来。

安装

https://jasper-zhang1.gitbooks.io/influxdb/content/Introduction/installation.html

使用

连接

# 启动influxdb服务
sudo service influxdb start

# 进入后台
influx -precision rfc3339

influx #无指定用户名密码的话,会报错
influx -username 'brewin' -password '123456'
influx -username 'brewin' -password ''
influx -username 'brewin'

influxdb增加auth配置如下,在[http]这个底下添加,并重启influxdb(systemctl restart influxdb)

auth-enabled = true

用户

influx --help #查看influx客户端的使用帮助
influx  #默认连接到localhost:8086
show users #查看所有用户,默认没有
CREATE USER "brewin" WITH PASSWORD '123456' WITH ALL PRIVILEGES #创brewin用户,密码123456,管理员权限

数据保留时间设置

# 默认有个策略0s表示永久保存
show retention policies on jmintor;  

# 设置一个策略保留30天
create retention policy rp_jmintor on jmintor duration 30d replication 1 default; 

#修改上个策略为90天
alter retention policy rp_jmintor on jmintor duration 90d replication 1 default;  

#删除策略
drop retention policy rp_jmintor on jmintor; 

database

-- 查看所有的数据库
show databases;

-- 使用特定的数据库
use database_name;

--创建数据库
create database jmintor;

--删除数据库
drop database jmintor;

measurement

类似表

-- 查看所有的measurement
show measurements;
-- 插入数据,如果没有这个表会自动创建,无需创建measurement,可直接插入数据。
insert cpuinfo,item1=brewin_cpu.idle,item2=itemtest2 value=90 
-- 查询所有cpuinfo表中的数据
select * from cpuinfo;
-- 删除表
drop measurement cpuinfo;

delete from cpuinfo where time=1531992939634316937;


-- 查询10条数据
select * from measurement_name limit 10;
     
-- 数据中的时间字段默认显示的是一个纳秒时间戳,改成可读格式
precision rfc3339; -- 之后再查询,时间就是rfc3339标准格式

-- 或可以在连接数据库的时候,直接带该参数
influx -precision rfc3339

point

-- 查看一个measurement中所有的tag key 
show tag keys

-- 查看一个measurement中所有的field key 
show field keys

内置函数

-- 查询非空值的数量
seltct count(value) from cpuinfo
-- 查询唯一值
select distinct(value) from cpuinfo;
-- 查询平均值
select mean(value) from cpuinfo;
-- 查询总和
select sum(value) from cpuinfo
-- 查询最大的N个值
select top(value,3) from cpuinfo
-- 查询最小的N个值
select bottom(value,3) from cpuinfo

posted @ 2022-02-07 15:47  之石先生  阅读(1120)  评论(0编辑  收藏  举报