1. 程式人生 > >時序資料庫InfluxDB

時序資料庫InfluxDB

在系統服務部署過後,線上執行服務的穩定性是系統好壞的重要體現,監控系統狀態至關重要,經過調研瞭解,時序資料庫influxDB在此方面表現優異。

influxDB介紹

時間序列資料是以時間欄位為每行資料的標示,比如股票市場的價格,環境中的溫度,主機的CPU使用率等。但是又有什麼資料是不包含timestamp的呢?幾乎所有的資料都可以打上一個timestamp欄位。時間序列資料更重要的一個屬性是如何去查詢它。在查詢的時候,對於時間序列我們總是會帶上一個時間範圍去過濾資料。同時查詢的結果裡也總是會包含timestamp欄位。
InfluxDB 是一個開源分散式時序、事件和指標資料庫。使用 Go 語言編寫,無需外部依賴。其設計目標是實現分散式和水平伸縮擴充套件。
它有三大特性:

  1. Time Series (時間序列):你可以使用與時間有關的相關函式(如最大,最小,求和等)

  2. Metrics(度量):你可以實時對大量資料進行計算

  3. Eevents(事件):它支援任意的事件資料
    特點:

  • schemaless(無結構),可以是任意數量的列

  • min, max, sum, count, mean, median 一系列函式,方便統計

  • Native HTTP API, 內建http支援,使用http讀寫

  • Powerful Query Language 類似sql

操作介紹

遠端連線

1
influx -host xx.xx.xx.xx -port xxxx(預設8086) -username xx -password xx -database xx


建立及使用資料庫

1
2
3
create database "test"; --建立資料庫
show databases;  --檢視資料庫
use test; --選取資料庫


增刪改查

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
SHOW MEASUREMENTS  --查詢當前資料庫中含有的表
SHOW FIELD KEYS --檢視當前資料庫所有表的欄位
SHOW series from pay --檢視key資料

SHOW TAG KEYS FROM "pay" --檢視key中tag key值
SHOW TAG VALUES FROM "pay" WITH KEY = "merId" --檢視key中tag 指定key值對應的值
SHOW TAG VALUES FROM cpu WITH KEY IN ("region", "host") WHERE service = 'redis'
DROP SERIES FROM <measurement_name[,measurement_name]> WHERE <tag_key>='<tag_value>' --刪除key
SHOW CONTINUOUS QUERIES   --檢視連續執行命令
SHOW QUERIES  --檢視最後執行命令
KILL QUERY <qid> --結束命令
SHOW RETENTION POLICIES ON mydb  --檢視保留資料
查詢資料
SELECT * FROM /.*/ LIMIT 1  --查詢當前資料庫下所有表的第一行記錄
select * from pay  order by time desc limit 2
select * from  db_name."POLICIES name".measurement_name --指定查詢資料庫下資料保留中的表資料 POLICIES name資料保留
刪除資料
delete from "query" --刪除表所有資料,則表就不存在了
drop MEASUREMENT "query"   --刪除表(注意會把資料保留刪除使用delete不會)
DELETE FROM cpu
DELETE FROM cpu WHERE time < '2000-01-01T00:00:00Z'
DELETE WHERE time < '2000-01-01T00:00:00Z'
DROP DATABASE “testDB” --刪除資料庫
DROP RETENTION POLICY "dbbak" ON mydb --刪除保留資料為dbbak資料
DROP SERIES from pay where tag_key='' --刪除key中的tag

SHOW SHARDS  --檢視資料儲存檔案
DROP SHARD 1
SHOW SHARD GROUPS
SHOW SUBSCRIPTIONS


6、資料保留命令

檢視保留期 SHOW RETENTION POLICIES ON mydb

修改保留期 ALTER RETENTION POLICY default ON online DEFAULT

刪除保留期 DROP RETENTION POLICY <retentionpolicy> ON <database>

建立保留期 REATE RETENTION POLICY "rp_name" ON "db_name" DURATION 30d REPLICATION 1 DEFAULT

rp_name:策略名

db_name:具體的資料庫名

30d:儲存30天,30天之前的資料將被刪除

它具有各種時間引數,比如:h(小時),w(星期)m minutes h hours d days w weeks INF infinite

REPLICATION 1:副本個數,這裡填1就可以了

DEFAULT設為預設的策略


目前,我們已經influxdb+grafana應用到資料庫監控、Kafka資料流監控、服務頁面資料統計監控等,炫酷的頁面給你不一樣的體驗,試試吧!

關注微信公眾號: 正版喬,和我一起探索日常的程式設計樂趣~

 

推薦閱讀:




一個學統計的程式設計師

喜歡Coding

喜歡硬體

喜歡樹莓派

喜歡深度學習

喜歡你