時序數據庫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

操作介紹

遠程連接

influx -host xx.xx.xx.xx -port xxxx(默認8086) -username xx -password xx -database xx

創建及使用數據庫

create database "test"; --創建數據庫
show databases; --查看數據庫
use test; --選取數據庫

增刪改查

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 WHERE ='' --刪除key
SHOW CONTINUOUS QUERIES --查看連續執行命令
SHOW QUERIES --查看最後執行命令
KILL QUERY --結束命令
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 ON

創建保留期 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

喜歡硬件

喜歡樹莓派

喜歡深度學習

喜歡你

原文 : 博客園-原創精華區

相關閱讀

免责声明:本文内容来源于博客園-原創精華區,已注明原文出处和链接,文章观点不代表立场,如若侵犯到您的权益,或涉不实谣言,敬请向我们提出检举。