influxdb数据导入(csv文件)
1.先去掉csv表头信息
test.to_csv('test.csv', header=None, index=False)
2.csv文件转化为influx接受的txt文件
import time
import os
import csv
t = time.time()
with open('test.txt', 'w') as f1:
f1.write('# DDL\n')
f1.write('CREATE DATABASE testx_v1\n')
f1.write('\n# DML')
f1.write('\n# CONTEXT-DATABASE: testx_v1')
for i in range(1,2):
s = str(i)
with open('test.csv') as csvfile:
readcsv = csv.reader(csvfile)
for row in readcsv:
f1.write('\ntestx_v1')
f1.write(' 103=' + row[1])
f1.write(',104=' + row[2])
f1.write(',refrigerantLowTemp=' + row[33])
f1.write(',steam_pressure_target=' + row[34])
f1.write(' ' + row[0])
f1.write('\n')
f1.close()
注意:
- DDL与DML之间需要至少空一行
-
f1.write('\ntestx_v1')表示写入的measure,实际不会在数据库中看到
-
f1.write(' 103=' + row[1])前面的字段需要空一格,表示开始field字段的写入
-
f1.write(' ' + row[0])前面的字段也需要空一格,表示开始时间字段的写入,此处时间使用纳秒ns
3.将生成的txt文件复制到influxdb所在的linux环境
4.使用dos2unix转化txt文件
dos2unix test.txt
注意:
- 若linux环境没有此命令,需要安装dos2unix软件
5.使用influx命令存储test.txt中的数据
influx -import -path=test.txt -precision=ns &> influx.log
注意:
- 将运行日志保存在influx.log中
6.查验存储是否成功
influxdb数据导出
注意:
- 导出的csv文件,每隔10000行会打印一次表头信息,后续做数据分析时,需要删除此些行