influxdb的基本使用


influxDB名詞

  • database:數據庫;
  • measurement:數據庫中的表;
  • points:表里面的一行數據。

influxDB中獨有的一些概念

Point由時間戳(time)、數據(field)和標簽(tags)組成。

  • time:每條數據記錄的時間,也是數據庫自動生成的主索引;
  • fields:各種記錄的值;
  • tags:各種有索引的屬性。
  • 還有一個重要的名詞:series
    所有在數據庫中的數據,都需要通過圖表來表示,series表示這個表里面的所有的數據可以在圖標上畫成幾條線(注:線條的個數由tags排列組合計算出來)
    舉個簡單的小例子:
    假如數據庫內數據為(abc為tags):
 
a=1,b=1,c=1
a=1,b=2,c=1
a=1,b=3,c=1
a=1,b=3,c=1
a=1,b=3,c=1
a=2,b=1,c=1
a=1,b=1,c=1
a=1,b=1,c=1

 

輸入show series from 表名
得到的是:

 
key
---
表名,a=1,b=1,c=1
表名,a=1,b=2,c=1
表名,a=1,b=3,c=1
表名,a=2,b=1,c=1

 

也就是看數據能夠組成幾種排列組合。

influxDB基本操作

數據庫與表的操作

#創建數據庫
create database "db_name"
 
#顯示所有的數據庫
show databases
 
#刪除數據庫
drop database "db_name"
 
#使用數據庫
use db_name
 
#顯示該數據庫中所有的表
show measurements
 
#創建表,直接在插入數據的時候指定表名
insert test,host=127.0.0.1,monitor_name=test count=1
 
#刪除表
drop measurement "measurement_name"

 

> use metrics
Using database metrics
> insert test,host=127.0.0.1,monitor_name=test count=1

> use metrics
Using database metrics
> select * from test order by time desc

注:influxdb沒有刪除和修改操作,具體點的寫法就不贅述了,跟sql語句差不多,想要了解其他語句或者函數語句看我下一篇博客

其他查詢語句

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

 

數據保存策略

influxdb雖然沒有刪除語句,但是可以設置類似於定期清理的語句。

 
show retention policies on "db_name"
 
image

創建新的Retention Policies

create retention policy "rp_name" on "db_name" duration 3w replication 1 default
  • rp_name:策略名
  • db_name:具體的數據庫名
  • 3w:保存3周,3周之前的數據將被刪除,influxdb具有各種事件參數,比如:h(小時),d(天),w(星期)
  • replication 1:副本個數,一般為1就可以了
  • default:設置為默認策略
修改Retention Policies
alter retention policy "rp_name" on "db_name" duration 30d default
刪除Retention Policies
drop retention policy "rp_name" on "db_name" 

連續查詢

當數據超過保存策略里指定的時間之后就會被刪除,但是這時候可能並不想數據被完全刪掉,怎么辦?
influxdb提供了聯系查詢,可以做數據統計采樣。

查看數據庫的Continous Queries
 
show continuous queries
 
image
創建新的Continous Queries
create continous query cq_name on db_name begin select sum(count) into new_table_name from table_name group by time(30m) end
  • cq_name:連續查詢名字
  • db_name:數據庫名字
  • sum(count):計算總和
  • table_name:當前表名
  • new_table_name:存新的數據的表名
  • 30m:時間間隔為30分鍾
刪除Continous Queries
drop continous query cp_name on db_name

用戶管理

#顯示用戶
show users
 
#創建用戶
create user "username" with password 'password'
 
#創建管理員權限用戶
create user "username" with password 'password' with all privileges
 
#刪除用戶
drop user "username"

 



作者:萌木蓋
鏈接:https://www.jianshu.com/p/721e4ce4c066
來源:簡書
著作權歸作者所有。商業轉載請聯系作者獲得授權,非商業轉載請注明出處。


免責聲明!

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



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