influxDB-01

1,013 阅读3分钟

1. influxDB简单介绍

influxDB 是一个开源分布式时序、事件和指标数据库。使用 Go 语言编写,无需外部依赖。其设计目标是实现分布式和水平伸缩扩展。

与传统数据库q相关和区别

influxDB中的概念 传统数据库中的概念h
database 数据库
measurement 数据库中的表
point 表中的一行数据

point 的数据结构由时间戳(time)、标签(tags)、数据(fields)三部分组成

point 属性 含义
time 数据记录的时间
tags 各种有索引的属性(用于查询筛选数据)
fields 各种value值(没有索引的属性,可以用各种函数取值)

series

通过tags、fields、measurement共同组成,表示这张表里可以在图上画几条线。

2. influxDB基本操作

influxDB建库查询操作

./influx //进入influx命令行客户端

SHOW DATABASES; //查看influx所有数据库

CREAT DATABASE CPU; //创建CPU库

USE CPU; //进入CPU库

INSERT TEST,IP='122.20.141.168' USED_ALL=60; //在TEST 表插入数据 索引(IP) 值(总使用率),influxDB没有建表语句,在执行insert语句时,如果没有对应的表会自动表。

SELECT * FROM TEST WHERE IP='122.20.141.168' ; //在根据索引查询筛选数据时,索引对应的值一般是String类型,所以查询的时候需要加'',不然会查不到数据

influxDB保存策略

influxDB不能直接删除数据,但是可以通过保存策略(retention policy)间接删除,主要是通过给表中的数据设定一个固定的保存时间,超过保存时间的数据就可以自动删除了。

CREATE RETENTION POLICY CPU_24h ON CPU DURATION 24h REPLICATION 1 DEFAULT;

CREATE RETENTION POLICY CPU_31d ON CPU DURATION 31d REPLICATION 1 ;

DROP RETENTION POLICY CPU_24h ON CPU;//删除保存策略(删除保存策略的时候要注意了,!!当心你的数据,数据是跟保存策略相关的,如果删除了保存策略,使用这个保存策略的所有数据也会全部删除)

  • CPU_24h :策略名;
  • CPU : 库名;
  • 24h/31d :保存24小时/31天,24小时之前/31天之前的数据自动删除,时间参数h(小时),d(天),w(周)
  • REPLICATION : 1:副本个数,一般为1;
  • DEFAULT : 默认保存策略,即如果不给表指定保存策略,就用默认的保存策略;

influxDB连续查询

DROP CONTINUOUS QUERY CPU_1H ON CPU //删除连续查询

SHOW CONTINUOUS QUERIES//查看所有连续查询

CREATE CONTINUOUS QUERY CPU_1H BEGIN SELECT MEAN(USED_ALL) AS USED_ALL INTO CPU.CPU_31d.TEST_1D FROM TEST GROUP BY IP,TIME(60m) tz('Asia/Shanghai') END;

//新建一个连续查询,从TEST表里获取60分钟内服务器CPU使用率的均值插入到TEST_1D表 ,并且表的保存策略是 CPU库中的CPU_31d

tz('Asia/Shanghai'):时区,写不写时区这个select语句返回的时间戳是相同的,但是当连续查询 时间参数是1d的时候,不指定时区插入的数据的时间戳是当天的8点 而我们需要的时间一般是当天0点