环境安装
这里使用的是 centos 7
为系统基础环境, 安装 influxdb 1.7.2
。
# cat <<EOF | sudo tee /etc/yum.repos.d/influxdb.repo
[influxdb]
name = InfluxDB Repository - RHEL \$releasever
baseurl = https://repos.influxdata.com/rhel/\$releasever/\$basearch/stable
enabled = 1
gpgcheck = 1
gpgkey = https://repos.influxdata.com/influxdb.key
EOF
# yum install influxdb
# systemctl start influxdb
# systemctl enable influxdb
安装完之后,默认无用户,因此可以直接使用如下命令进行查看:
$ influx -precision rfc3339
Connected to http://localhost:8086 version 1.7.4
InfluxDB shell version: 1.7.4
Enter an InfluxQL query
>
默认链接本地 8086 端口
用户权限
# 显示用户
show users
# 创建用户
create user "developer" with password '123456'
# 创建管理员权限的用户
create user "admin" with password 'admin123' with all privileges
# 给普通用户授予管理员权限
GRANT ALL PRIVILEGES TO "developer"
# 给用户指定数据库操作权限
GRANT [READ,WRITE,ALL] ON <database_name> TO <username>
GRANT ALL ON test TO "developer"
# 撤回用户的管理员权限
REVOKE ALL PRIVILEGES FROM "developer"
# 查看用户权限
show grants for "developer"
# 修改密码
set password for "developer" = '123456789'
# 删除用户
DROP USER "developer"
数据操作
启动链接到远程 influxdb
数据库,进行如下操作即可:
# influx -host 172.xxx.xxx.xxx -username admin -password 'admin123' -precision rfc3339
Connected to http://localhost:8086 version 1.7.4
InfluxDB shell version: 1.7.4
Enter an InfluxQL query
# 显示所有数据库
> show databases
# 创建数据库
> create database <数据库名>
# 使用数据库
> use <数据库名>
# 显示所有数据表
> SHOW measurements
# 查看当前数据库所有表的字段
> SHOW FIELD KEYS
# 查看数据
> SHOW series from <表>
# 删除 key
> DROP SERIES FROM <表名> WHERE tag_key='<tag_value>'
# 删除表内数据,表也不存在咯
> DELETE FROM <表名>
# 删除表
1. 数据插入
在 influxdb
中表结构可以不用建立,通过 insert
即可自动构建表结构。具体语法如下:
insert <measurement>[,<tag-key>=<tag-value>...] <field-key>=<field-value>[,<field2-key>=<field2-value>...] [timestamp]
注
group by
聚合条件中仅仅能对 tag
字段进行操作。tag
字段可以理解为索引操作
- 插入多个
tag
> insert cpu,host=192.168.1.1,service="A" used=0.23
> insert cpu,host=192.168.1.1,service="B" used=0.33
> insert cpu,host=192.168.1.1,service="C" used=0.35
> insert cpu,host=192.168.1.1,service="B" used=0.34
更新表结构时,直接插入新格式的数据即可
- 查询最新/旧数据
# 查询单服务最新的 cpu 使用数据
> select last(used),* from cpu group by service
# 查询单服务最旧的 cpu 使用数据
> select first(used),* from cpu group by service
2. 存储策略
存储策略,InfluxDB 会自动清理数据,可以设置数据保留的时间,默认会创建存储策略 autogen (保留时间为永久),之后用户可以自己设置,例如保留最近 30 天的数据。
# 查看数据保持策略
> show retention policies on "数据库名称"
name duration shardGroupDuration replicaN default
---- -------- ------------------ -------- -------
autogen 0s 168h0m0s 1 true
存储策略有点类似于分区数据块,修改了策略,新策略里不会有旧策略的数据。
要想查看旧策略下的数据,需要在 measurement 前加上策略名称。
# 查看默认策略中的数据
select * from "autogen".cpu
# 创建新的策略
create retention policy "rp_day_30" on "test" duration 30d replication 1 default
# 修改策略
alter retention policy "rp_day_30" on "test" duration 20d replication 1 default
# 删除策略
drop retention policy "rp_day_30" on "test"
网友评论