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
來源:簡書
著作權歸作者所有。商業轉載請聯系作者獲得授權,非商業轉載請注明出處。