influxdb使用入門

郎帥發表於2018-11-07

參考:

https://blog.csdn.net/vtnews/article/details/80197045

https://docs.influxdata.com/influxdb/v1.6/tools/api/#write-http-endpoint

https://blog.csdn.net/vtnews/article/details/80197045

0.influxdb配置

預設配置檔案目錄:/etc/influxdb/influxdb.conf,配置檔案詳解見如下:

 https://www.cnblogs.com/guyeshanrenshiwoshifu/p/9188368.html

啟動方式:service influxdb start,此種啟動方式的啟動指令碼(程式的入口)在:/etc/init.d/influxdb

預設系統日誌:/var/log/influxdb/influxd.log

1.resful插入和讀取資料:

格式
<measurement>[,<tag-key>=<tag-value>...] <field-key>=<field-value>[,<field2-key>=<field2-value>...] [unix-nano-timestamp]

寫入
curl -i -XPOST "http://localhost:8086/write?db=mydb&precision=s" --data-binary 'test,hostname=server01 value=145465156'
讀取
curl -i -G 'http://localhost:8086/query?db=mydb' --data-urlencode 'q=SELECT * FROM "test"'


顯示常用的時間格式
select * from disk where time >= '2018-11-23 14:30:39' and time <= '2018-11-23 14:32:32' tz('Asia/Shanghai')

2.influxdb聚合函式的使用:

https://www.jianshu.com/p/a1344ca86e9b

https://docs.influxdata.com/influxdb/v1.7/query_language/spec/

 

3.客戶端常用命令:

//注意key雙引號value單引號

show tag keys from h2o_feet  檢視錶的tag

show field keys from h2o_feet  檢視錶的field

create database test 建立資料庫

show databases 檢視資料庫

SHOW RETENTION POLICIES ON test 獲取保留策略

#將資料庫proxydb預設保留策略改為seven_day_only這個保留策略
CREATE RETENTION POLICY "seven_day_only" ON "proxydb" DURATION 7d REPLICATION 1 DEFAULT

#修改資料庫proxydb的預設保留策略autogen為8760h
alter retention policy "autogen" on "proxydb" duration 8760h replication 1 default;


刪除2016年1月1日之前發生的資料庫中的所有資料
DELETE WHERE time < '2016-01-01'  通過time批量刪除資料


刪除與測量相關的所有資料h2o_quality以及標記randtag等於的位置3
DELETE FROM "h2o_quality" WHERE "randtag" = '3'

顯示某個tag所有的值
show tag values from ppyunwg with key="action"

建立test表
insert test,type=tem,sensor=sensor01 value=3,is_deleted=0
測試正規表示式
select *from test where "sensor"=~/^(sensor01|sensor02)$/

檢視訂閱
SHOW SUBSCRIPTIONS
刪除訂閱
name: yun
retention_policy name                                           mode destinations
---------------- ----                                           ---- ------------
autogen          kapacitor-0a6f0d7b-430f-464d-a0b4-7f2946da67a0 ANY  [http://10.60.64.226:9092]
> drop subscription "kapacitor-0a6f0d7b-430f-464d-a0b4-7f2946da67a0" on "yun"."autogen"



kapacitor list tasks  kapacitor檢視任務

influx提供離線聚合功能,將聚合結果算出並儲存,需要時直接取資料,不需要實時聚合
https://docs.influxdata.com/influxdb/v1.2/query_language/continuous_queries/

查詢cq:
SHOW CONTINUOUS QUERIES
刪除cq:
DROP CONTINUOUS QUERY <cq_name> ON <database_name>

cq示例:
CREATE CONTINUOUS QUERY cq_1d_rtc_masterstatic ON ppyun RESAMPLE EVERY 1h FOR 2h BEGIN SELECT max(f_user_num) AS f_user_num INTO  "5min_rtc_masterstatic" FROM rtc_masterstatic WHERE t_action = 'static' AND t_level = 'info' GROUP BY time(5min), t_room_id END

解釋:RESAMPLE EVERY 1h FOR 2h表示每小時執行一次,每次執行2個小時區間的時間段,為了解決資料延遲到達問題,相當於每小時的資料會計算兩次,後一次覆蓋前一次

更多刪除方法
https://docs.influxdata.com/influxdb/v1.4/query_language/database_management/#retention-policy-management

保留策略:

https://docs.influxdata.com/influxdb/v1.6/query_language/database_management/#retention-policy-management

 

group by time有預設邊界,  當以天為間隔時,需要設定偏移量 group by time(1d,-8h)