influxdb基本操作
influxDB名詞介紹:
database:數據庫;
measurement:數據庫中的表;
points:表里面的一行數據。
influxDB中獨有的一些概念
Point由時間戳(time)、數據(field)和標簽(tags)組成。
time:每條數據記錄的時間,也是數據庫自動生成的主索引;
fields:各種記錄的值;
tags:各種有索引的屬性。
還有一個重要的名詞:series
所有在數據庫中的數據,都需要通過圖表來表示,series表示這個表里面的所有的數據可以在圖標上畫成幾條線(注:線條的個數由tags排列組合計算出來)
舉個簡單的小例子:
有以下數據:
它的series為:
influxDB基本操作
數據庫與表的操作
可以直接在web管理頁面做操作,當然也可以命令行。
#創建數據庫
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"
增
向數據庫中插入數據。
通過命令行
這樣,數據庫插入數據成功。
通過http接口
curl -i -XPOST 'http://127.0.0.1:8086/write?db=metrics' --data-binary 'test,host=127.0.0.1,monitor_name=test count=1'
因為influxDB存儲數據采用的是Line Protocol格式。那么何謂Line Protoco格式?
Line Protocol格式:寫入數據庫的Point的固定格式。
在上面的兩種插入數據的方法中都有這樣的一部分:
test,host=127.0.0.1,monitor_name=test count=1
其中:
test:表名;
host=127.0.0.1,monitor_name=test:tag;
count=1:field
相對此格式有詳細的了解參見官方文檔
查
查詢數據庫中的數據。
-
通過命令行
-
通過http接口
curl -G 'http://localhost:8086/query?pretty=true' --data-urlencode "db=metrics" --data-urlencode "q=select * from test order by time desc"
influxDB是支持類sql語句的,具體的查詢語法都差不多,這里就不再做詳細的贅述了。
數據保存策略(Retention Policies)
influxDB是沒有提供直接刪除數據記錄的方法,但是提供數據保存策略,主要用於指定數據保留時間,超過指定時間,就刪除這部分數據。
查看當前數據庫Retention Policies
>show retention policies on "db_name"
創建新的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"
連續查詢(Continous Queries)
當數據超過保存策略里指定的時間之后就會被刪除,但是這時候可能並不想數據被完全刪掉,怎么辦?
influxdb提供了聯系查詢,可以做數據統計采樣。
查看數據庫的Continous Queries
>show continuous queries
創建新的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
用戶管理
可以直接在web管理頁面做操作,也可以命令行。
#顯示用戶
>show users
#創建用戶
>create user "username" with password 'password'
#創建管理員權限用戶
>create user "username" with password 'password' with all privileges
#刪除用戶
>drop user "username"