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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM