Centos7.6 部署InfluxDB以及InfluxQL入门

 

介绍

InfluxDB(时序数据库),常用的一种使用场景:监控数据统计。

每毫秒记录一下电脑内存的使用情况,然后就可以根据统计的数据,利用图形化界面(InfluxDB 一般配合Grafana)制作内存使用情况的折线图;可以理解为按时间记录一些数据(常用的监控数据、埋点统计数据等),然后制作图表做统计;

维基百科 定义如下:

InfluxDB是一个由InfluxData开发的开源时序型数据。它由Go写成,着力于高性能地查询与存储时序型数据。InfluxDB被广泛应用于存储系统的监控数据,IoT行业的实时数据等场景。


 

环境信息

OS: CentOS 7.6

InfluxDB: 1.8.x

安装

(1)将InfluxDB加入yum源

vim /etc/yum.repos.d/influxdb.repo

[influxdb]
name = InfluxDB Repository - RHEL $releasever
baseurl = https://repos.influxdata.com/rhel/$releasever/$basearch/stable
enabled = 1
gpgcheck = 1
gpgkey = https://repos.influxdata.com/influxdb.key

(2)安装和启动

#安装
sudo yum install  influxdb

#启动
sudo systemctl start influxdb

#配置开机启动
sudo systemctl enable influxdb

(3) 对常见关系型数据库(MySQL)的基础概念对比

名次/概念

解释

database

数据库

measurement

度量,相当于table;例如:cpu

tags

标签,相当于field,会被索引;例如:host

field

字段,不会被索引,例如:cpu_load

(4)登录

$influx -h
$influx 
Connected to http://localhost:8086 version 1.8.0
InfluxDB shell version: 1.8.0
> 

(5)用户配置

netstat -ntlp|grep 8086  # influx的默认端口

(5.1)用户创建 相关

> CREATE USER knight WITH PASSWORD 'knight' WITH ALL PRIVILEGES
> show users
user   admin
----   -----
knight true
> 

(5.2)创建数据库

> create database test
> show databases
name: databases
name
----
_internal
test
> 

(5.3)CURD操作

> select * from "cpu"
name: cpu
time                host load usage
----                ---- ---- -----
1590650673865802321 me02 0.1  0.2
> select "host","load" from "cpu"
name: cpu
time                host load
----                ---- ----
1590650673865802321 me02 0.1
> select * from "cpu" where "host"='me02'
name: cpu
time                host load usage
----                ---- ---- -----
1590650673865802321 me02 0.1  0.2

(6)InfluxQL 语法

InfluxDB里存储的数据被称为时间序列数据,InfluxDB存储方式跟传统关系型数据库不同的是:

传统关系型数据库通过数据库+表+字段组织数据,InfluxDB通过指标、标签、字段组织数据,时间戳是默认的索引列,标签跟字段其实就相当于关系型数据库中的字段,只不过标签会被索引,而字段不会。

另外,InfluxDB中的表(measurement)、字段(tag、field)不用事先创建,并且不存储null值

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

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

# 查看所有的measurement(表)
show measurements;

# 查询10条数据
select * from measurement_name limit 10;

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

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

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

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

# 查看一个measurement中所有的保存策略(可以有多个,一个标识为default)
show retention policies;

(7)HTTP API

# 创建数据库
curl -i -XPOST http://localhost:8086/query --data-urlencode "q=CREATE DATABASE test01"

## 写入数据
### 写入单条数据
curl -i -XPOST http://localhost:8086/write?db=test01 --data-binary "cpu,host=me03 load=0.1,usage=0.33"

### 写入多条数据
curl -i -XPOST http://localhost:8086/write?db=test01 --data-binary "cpu,host=me03 load=0.1,usage=0.22 166"

## 查询数据
curl -G http://localhost:8086/query?db=test01 --data-urlencode "q=SELECT * FROM  \"cpu\""

猜你喜欢

转载自blog.csdn.net/knight_zhou/article/details/106405032