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\""

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章