InfluxDB 常用命令
用户操作
# 添加管理员
create user "root" with password '123456' with all privileges
# 显示用户
show users
操作数据
# 创建数据库test_aemesc
create database test_aemesc
# 删除数据库
drop database test
# 查看数据库
show databases
# 使用 test_aemesc 数据库
use test_aemesc
# 查看所有的表(使用某个库才能进行具体操作表)
show measurements
# 删除表
drop measurement 表名
# 创建表(InfluxDB中没有显式的新建表的语句,只能通过insert数据的方式来建立新表)
insert TestData,devKey=黄敏婷,identi=对不起 value="今天实在没能回你信息" 1617840905000186512
## 格式说明
## insert measurement,tag=value,tag=value field=value,field=value timestamp
## tag 与 tag 之间用逗号分隔, field 与 field 之间用逗号分隔, tag 与 field 之间用空格分隔
## TestData表的结构:timestamp + tag + filed的组成
## timestamp : 时间戳,ms单位,每个记录都必然有这个属性,没有显示添加时,默认当前时间戳
## tag: 标签,在 database 中,tag + measurement 一起构建索引参与索引创建,适合作为查询的过滤条件,都是 string类型,不需要引号将 value 包裹
## field:存储数据,数据类型为: long, String, boolean, float
## field 如果创建时是 string 类型,需要加引号""
# 查询某个表的数据
select * from 表名
eg: select * from TestData
# 查看所有 tag
show tag keys from TestData
说明: tag 值有 devKey 和 identi 都是 String 类型
# 查看所有 field
show field keys from TestData
说明: field 有 value , fieIdType 值是 String : "今天实在没能回你信息"
# 条件查询 说明: 只能用单引号''
select * from TestData where devKey = '黄敏婷'
# 时间范围查询 说明: time 是时间戳(前面5分钟后的所有数据)
SELECT * FROM TestData WHERE time > now() - 5m
备份恢复操作
# 全部备份
influxd backup -host 172.16.16.119:8088 -portable /data/docker-compose/influxdb/db_backup
# 备份单个库
influxd backup -host 172.16.16.119:8088 -portable -database test_aemesc /data/docker-compose/influxdb/db_backup/test_aemesc/20220906
# 恢复全部
influxd restore -host 172.16.16.119:8088 -portable /data/docker-compose/influxdb/db_backup
# 将现有数据库备份还原到临时数据库
influxd restore -host 172.16.16.119:8088 -portable -db test_aemesc -newdb test_aemesc_bak /data/docker-compose/influxdb/db_backup/test_aemesc/20220906
# 还原指定 test_aemesc 数据库(test_aemesc 数据库必须不存在)适用于是一个全新的influxdb服务:
influxd restore -host 172.16.16.119:8088 -portable -db test_aemesc /data/docker-compose/influxdb/db_backup/test_aemesc/20220906
# 使用 influx cli 查询语句的方式进行备份
eg:
> influx -host 172.16.16.120 -database mydb -execute "SELECT * FROM cpu WHERE time <= now() tz('Asia/Shanghai')" -format csv |gzip > cpu.csv.gz
> gunzip cpu.csv.gz
> cat cpu.csv
name,time,host,load,region
cpu,1434055562000000000,server01,42,uswest
cpu,1434055562000000000,server02,78,uswest
cpu,1434055562000000000,server03,15.4,useast
可以使用:show tag keys from cpu 和 show field keys from cpu 查询 tag 和 field
其中:tag: host, region;field:region
# 使用 python 第三方工具导入数据
1. 安装 export_csv_to_influx
# 可以参考 https://www.cnblogs.com/klvchen/articles/15964564.html 再执行 pip install ExportCsvToInflux
2. 先创建新的数据库 create database klvchen
3. 执行下面语句
export_csv_to_influx \
--csv cpu.csv \
--dbname klvchen \
--measurement cpu \
--tag_columns host,region \
--time_column time \
--field_columns load \
--server 172.16.16.120:8086
# export_csv_to_influx 可以参考 https://github.com/Bugazelle/export-csv-to-influx
参考
https://docs.influxdata.com/influxdb/v1.8/tools/influx-cli/
https://github.com/Bugazelle/export-csv-to-influx
https://www.cnblogs.com/klvchen/articles/15964564.html