前言
公司项目采用redis作为实时库,InfluxDB作为历史库,需要从现场导出真实数据并导入公司搭建的环境进行模拟测试,在这里做个记录。
InfluxDB数据导出和导入
导出历史数据
新建个文件夹,并执行命令:
influxd backup -portable -database prs3000 -start 2020-07-01T16:00:00Z -end 2020-07-30T16:00:00Z ./backup
其中:
- 数据库名:prs3000
- 备份文件夹:
backup
- start/end:起始时间和结束时间
需要注意的是命令中参数接受的时间是UTC时间,需要在北京时间基础上减去8小时,上面的命令是备份7月1日早8点到7月30日早8点之间的数据。
备份命令执行:
备份好后backup
文件夹内容如下:
导入历史数据
导入备份的InfluxDB数据首先需要删除机器上的database
查看导入机器上的database
show databases
可以看到只有1个database,名prs3000
首先删除database
drop database "prs3000"
删除后:
把备份的InfluxDB数据文件backup
拷贝到机器上并导入
influxd restore -portable -db prs3000 ./backup
数据导入进行中:
常用查询命令
查询时段区间内数据:其中hisAnalogs是measurement
SELECT * FROM "hisAnalogs" WHERE code='Ogfq01nb11Yc' and time >= '2020-08-01 06:00:00' and time < '2020-08-01 18:00:00' tz('Asia/Shanghai')
只显示10条查询记录
SELECT * FROM "hisAnalogs" WHERE code='Ogfq01nb11Yc' and time >= '2020-08-01 06:00:00' and time < '2020-08-01 18:00:00' limit 10 tz('Asia/Shanghai')
在InfluxDB Studio中查询
在终端中查询:
redis数据导出和导入
导出和导入
redis的备份和导入相对简单,直接复制出/redis/data下的dump.rdb
文件即可
复制到新机器的/redis/data路径后,重启redis,redis直接用kill命令干掉,由于我的redis跑在5804端口,配置文件是redis_5804.conf,所以执行命令如下:
redis-server /etc/redis/redis_5804.conf
可以看到redis起来了
redis查询
在Redis Desktop Manager中查询遥信:
在终端中查询遥测: