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

posted @ 2023-02-07 18:21  klvchen  阅读(1430)  评论(0编辑  收藏  举报