美文网首页
InfluxDB 使用笔记

InfluxDB 使用笔记

作者: 走在成长的道路上 | 来源:发表于2019-02-27 11:56 被阅读0次

环境安装

这里使用的是 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"

相关文章

网友评论

      本文标题:InfluxDB 使用笔记

      本文链接:https://www.haomeiwen.com/subject/qjuxuqtx.html