1.進入Influxdb的客戶端
[root@activity_sentinel ~]# influx
2.資料庫的操作
-
顯示所有的資料庫名
> show databases
name: databases
name
----
_internal
telegraf
-
新建資料庫
> create database Monitor
> show databases //檢視Monitor庫
name: databases
name
----
_internal
telegraf
Monitor
>
-
刪除資料庫
> drop database Monitor
-
使用某個資料庫
> use telegraf
Using database telegraf
>
-
檢視此資料庫下的所有表名稱
> show measurements
name: measurements
name
----
cpu
disk
diskio
3.資料表的操作
-
新建表
InfluxDB中沒有顯式的新建表的語句,只能通過insert資料的方式來建立新表。
insert Test,hostname=activety_sentinel value=666
其中 Test 就是表名,hostname是索引(tag),value=xx是記錄值(field),記錄值可以有多個,系統自帶追加時間戳
> select * from Test name: Test time hostname value ---- -------- ----- 1648275500109414508 activety_sentinel 666 >
或者新增資料時,自己寫入時間戳
insert Test,hostname=activety_sentinel value=666 1435362189575692182
-
刪除表
> drop measurement Test
-
向表中插入一條資料
> insert Test,hostname=server1 value=888
-
刪除表中的一條資料,根據時間戳time來刪除一條資料
> delete from Test where time=1648276975654173174
4.資料儲存策略(Retention Policies)
influxDB是沒有提供直接刪除資料記錄的方法,但是提供資料儲存策略,主要用於指定資料保留時間,超過指定時間,就刪除這部分資料。
-
檢視當前資料庫儲存策略(Retention Policies)
> show retention policies on "telegraf" //telegraf 是資料庫名 name duration shardGroupDuration replicaN default ---- -------- ------------------ -------- ------- autogen 240h0m0s 168h0m0s 1 true
-
建立新的儲存策略
create retention policy "save" on "telegraf" duration 150h replication 1 default; //save 是自定義的新策略名稱;150h是儲存時間; replication 1:副本個數,一般為1就可以了;default:設定為預設策略
-
修改儲存策略
alter retention policy "save" on "telegraf" duration 180h replication 1 default; //資料儲存180h
-
刪除儲存策略
drop retention policy "save" on "telegraf"
5.連續查詢(Continuous Queries)
InfluxDB的連續查詢是在資料庫中自動定時啟動的一組語句,語句中必須包含 SELECT
關鍵詞和 GROUP BY time()
關鍵詞。
InfluxDB會將查詢結果放在指定的資料表中。
目的:使用連續查詢是最優的降低取樣率的方式,連續查詢和儲存策略搭配使用將會大大降低InfluxDB的系統佔用量。而且使用連續查詢後,資料會存放到指定的資料表中,這樣就為以後統計不同精度的資料提供了方便。
-
新建連續查詢示例
CREATE CONTINUOUS QUERY monitorclient ON telegraf BEGIN SELECT mean(connected_clients), MEDIAN(connected_clients), MAX(connected_clients), MIN(connected_clients) INTO redis_clients_30m FROM redis_clients GROUP BY ip,port,time(30m) END
sql含義:在" telegraf " 庫中新建了一個名為 " monitorclient " 的連續查詢,每三十分鐘取一個connected_clients欄位的平均值、中位值、最大值、最小值 redis_clients_30m 表中。使用的資料保留策略都是 default。
-
顯示所有已存在的連續查詢
show continuous queries
-
刪除Continuous Querie
drop continuous query monitorclient ON telegraf // monitorclient 是連續查詢的名稱; telegraf 是資料庫名稱