influxdb基本操作
名詞解釋
在具體的講解influxdb的相關操作之前先說說influxdb的一些專有名詞,這些名詞代表什麼。
influxDB名詞
- database:資料庫;
- measurement:資料庫中的表;
- points:表裡面的一行資料。
influxDB中獨有的一些概念
Point由時間戳(time)、資料(field)和標籤(tags)組成。
- time:每條資料記錄的時間,也是資料庫自動生成的主索引;
- fields:各種記錄的值;
- tags:各種有索引的屬性。
所有在資料庫中的資料,都需要通過圖表來表示,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"
增
向資料庫中插入資料。
- 通過命令列
> use metrics Using database metrics > insert test,host=127.0.0.1,monitor_name=test count=1
這樣,資料庫插入資料成功。
- 通過http介面
讀者看到這裡可能會觀察到插入的資料的格式貌似比較奇怪,這是因為influxDB儲存資料採用的是Line Protocol格式。那麼何謂Line Protoco格式?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'
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
查
查詢資料庫中的資料。
- 通過命令列
> use metrics Using database metrics > select * from test order by time desc
- 通過http介面
influxDB是支援類sql語句的,具體的查詢語法都差不多,這裡就不再做詳細的贅述了。curl -G 'http://localhost:8086/query?pretty=true' --data-urlencode "db=metrics" --data-urlencode "q=select * from test order by time desc"
資料儲存策略(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"
相關文章
- InfluxDB基本概念和操作UX
- 時序資料庫之InfluxDB的基本操作資料庫UX
- influxdb的基本概念UX
- InfluxDB 客戶端基礎操作2UX客戶端
- 時序資料庫InfluxDB的基本語法資料庫UX
- windows中啟動多個influxdb操作指南WindowsUX
- webpack 基本操作Web
- Git基本操作Git
- Laravel 基本操作Laravel
- 基本操作題
- dos 基本操作
- MongoDB基本操作MongoDB
- mongo基本操作Go
- HBase 基本操作
- candance 基本操作
- Hash基本操作
- svn基本操作
- oracle基本操作Oracle
- ElasticSearch基本操作Elasticsearch
- FFMPEG基本操作
- Kafka基本操作Kafka
- SQL基本操作SQL
- Docker 基本操作Docker
- JXL基本操作
- Hive基本操作Hive
- git 基本操作Git
- 基本操作命令
- mysql基本操作MySql
- ElasticSearch - 基本操作Elasticsearch
- Docker基本操作Docker
- redis基本操作Redis
- Go 操作 Redis 的基本操作GoRedis
- 坐下坐下,基本操作(ZooKeeper 操作篇)
- Git 常用基本操作Git
- Clion基本常用操作
- Elasticsearch CRUD基本操作Elasticsearch
- Redis管理基本操作Redis
- Docker的基本操作Docker