influxDB名詞
- database:數(shù)據(jù)庫岸梨;
- measurement:數(shù)據(jù)庫中的表元暴;
- points:表里面的一行數(shù)據(jù)篷扩。
influxDB中獨(dú)有的一些概念
Point由時(shí)間戳(time)、數(shù)據(jù)(field)和標(biāo)簽(tags)組成茉盏。
- time:每條數(shù)據(jù)記錄的時(shí)間鉴未,也是數(shù)據(jù)庫自動生成的主索引;
- fields:各種記錄的值鸠姨;
- tags:各種有索引的屬性铜秆。
- 還有一個(gè)重要的名詞:series
所有在數(shù)據(jù)庫中的數(shù)據(jù),都需要通過圖表來表示讶迁,series表示這個(gè)表里面的所有的數(shù)據(jù)可以在圖標(biāo)上畫成幾條線(注:線條的個(gè)數(shù)由tags排列組合計(jì)算出來)
舉個(gè)簡單的小例子:
假如數(shù)據(jù)庫內(nèi)數(shù)據(jù)為(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
也就是看數(shù)據(jù)能夠組成幾種排列組合羽峰。
influxDB基本操作
數(shù)據(jù)庫與表的操作
#創(chuàng)建數(shù)據(jù)庫
create database "db_name"
#顯示所有的數(shù)據(jù)庫
show databases
#刪除數(shù)據(jù)庫
drop database "db_name"
#使用數(shù)據(jù)庫
use db_name
#顯示該數(shù)據(jù)庫中所有的表
show measurements
#創(chuàng)建表,直接在插入數(shù)據(jù)的時(shí)候指定表名
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沒有刪除和修改操作添瓷,具體點(diǎn)的寫法就不贅述了梅屉,跟sql語句差不多,想要了解其他語句或者函數(shù)語句看我下一篇博客
其他查詢語句
SHOW FIELD KEYS --查看當(dāng)前數(shù)據(jù)庫所有表的字段
SHOW series from pay --查看key數(shù)據(jù)
SHOW TAG KEYS FROM "pay" --查看key中tag key值
SHOW TAG VALUES FROM "pay" WITH KEY = "merId" --查看key中tag 指定key值對應(yīng)的值
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 --查看連續(xù)執(zhí)行命令
SHOW QUERIES --查看最后執(zhí)行命令
KILL QUERY <qid> --結(jié)束命令
SHOW RETENTION POLICIES ON mydb --查看保留數(shù)據(jù)
查詢數(shù)據(jù)
SELECT * FROM /.*/ LIMIT 1 --查詢當(dāng)前數(shù)據(jù)庫下所有表的第一行記錄
select * from pay order by time desc limit 2
select * from db_name."POLICIES name".measurement_name --指定查詢數(shù)據(jù)庫下數(shù)據(jù)保留中的表數(shù)據(jù) POLICIES name數(shù)據(jù)保留
刪除數(shù)據(jù)
delete from "query" --刪除表所有數(shù)據(jù)鳞贷,則表就不存在了
drop MEASUREMENT "query" --刪除表(注意會把數(shù)據(jù)保留刪除使用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” --刪除數(shù)據(jù)庫
DROP RETENTION POLICY "dbbak" ON mydb --刪除保留數(shù)據(jù)為dbbak數(shù)據(jù)
DROP SERIES from pay where tag_key='' --刪除key中的tag
SHOW SHARDS --查看數(shù)據(jù)存儲文件
DROP SHARD 1
SHOW SHARD GROUPS
SHOW SUBSCRIPTIONS
數(shù)據(jù)保存策略
influxdb雖然沒有刪除語句坯汤,但是可以設(shè)置類似于定期清理的語句。
show retention policies on "db_name"
創(chuàng)建新的Retention Policies
create retention policy "rp_name" on "db_name" duration 3w replication 1 default
- rp_name:策略名
- db_name:具體的數(shù)據(jù)庫名
- 3w:保存3周搀愧,3周之前的數(shù)據(jù)將被刪除惰聂,influxdb具有各種事件參數(shù),比如:h(小時(shí))咱筛,d(天)搓幌,w(星期)
- replication 1:副本個(gè)數(shù),一般為1就可以了
- default:設(shè)置為默認(rèn)策略
修改Retention Policies
alter retention policy "rp_name" on "db_name" duration 30d default
刪除Retention Policies
drop retention policy "rp_name" on "db_name"
連續(xù)查詢
當(dāng)數(shù)據(jù)超過保存策略里指定的時(shí)間之后就會被刪除迅箩,但是這時(shí)候可能并不想數(shù)據(jù)被完全刪掉溉愁,怎么辦?
influxdb提供了聯(lián)系查詢饲趋,可以做數(shù)據(jù)統(tǒng)計(jì)采樣撤蟆。
查看數(shù)據(jù)庫的Continous Queries
show continuous queries
創(chuàng)建新的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:連續(xù)查詢名字
- db_name:數(shù)據(jù)庫名字
- sum(count):計(jì)算總和
- table_name:當(dāng)前表名
- new_table_name:存新的數(shù)據(jù)的表名
- 30m:時(shí)間間隔為30分鐘
刪除Continous Queries
drop continous query cp_name on db_name
用戶管理
#顯示用戶
show users
#創(chuàng)建用戶
create user "username" with password 'password'
#創(chuàng)建管理員權(quán)限用戶
create user "username" with password 'password' with all privileges
#刪除用戶
drop user "username"
我抄襲的這個(gè)博客