天天看點

Influxdb文法

1、資料構成

INSERT cpu_load_short,host=server01,region=us-west value=0.64,value2=0.86 1434055562000000000      

第一部分:“cpu_load_short,host=server01,region=us-west”

第一部分稱為key,key中包含了measurement name(類似表)和tags(tags又分為tag key和tag value,tags可以有多個)

注意:在tag value中的空格應以“”加上空格表示,tags中的值必須是string類型,其實是起到索引的作用

第二部分:“value=0.64,value2=0.86”

第二部分稱為Field,同樣和tags的形式相同,都是鍵值對的形式,但是tags中的值必須是string類型,而Field中的值可以為Integer、float、Boolean、string類型,

若為Integer類型,則值後必須加“i”,否則該值為float類型,

比如value=23意味着這個值23是float類型,

而value=23i,意味着值23是Integer類型。

Boolean類型的值的表示方式有很多,直接寫成:t, T, true, TRUE, f, F, false或 FALSE都可以。

第三部分(可選):“1434055562000000000”

第三部分稱為Timestamp,是時間戳,如果該部分省略,則預設将目前時間的時間戳插入資料庫,否則按照使用者輸入的時間戳插入。

注意:influxdb預設使用UTC時區展示資料

2、建立及使用資料庫

CREATE DATABASE "testDB"  --建立資料庫
show databases  --展示所有資料庫
use testDB使用  --資料庫      

3、增删改查指令

查詢表資訊

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      

4、函數使用

select * from pay   order by time desc limit 2
select mean(allTime) from pay where time >= today() group by time(10m) time_zone(+8)
select * from pay time_zone(+8) limit 2 
SELECT sum(allTime) FROM "pay" WHERE time > now() - 10s
select count(allTime) from pay  where time > now() - 10m  group by time(1s)      

5、使用者管理指令

SHOW USERS
CREATE USER jdoe WITH PASSWORD '1337password' -- Create a normal database user.
CREATE USER jdoe WITH PASSWORD '1337password' WITH ALL PRIVILEGES -- Create an admin user.
REVOKE ALL PRIVILEGES FROM jdoe revoke admin privileges from jdoe
REVOKE READ ON mydb FROM jdoe -- revoke read privileges from jdoe on mydb
SHOW GRANTS FOR jdoe -- show grants for jdoe
GRANT ALL TO jdoe -- grant admin privileges
GRANT READ ON mydb TO jdoe -- grant read access to a database
DROP USER jdoe      

6、資料保留指令