Simple python script that inserts data points read from a csv file into a influxdb database.
To create a new database, specify the parameter --create
. This will drop any database with a name equal to the one supplied with --dbname
.
usage: csv-to-influxdb.py [-h] -i [INPUT] [-d [DELIMITER]] [-s [SERVER]]
[--ssl] [-u [USER]] [-p [PASSWORD]] --dbname
[DBNAME] [--create] [-m [METRICNAME]]
[-tc [TIMECOLUMN]] [-tf [TIMEFORMAT]] [-tz TIMEZONE]
[--fieldcolumns [FIELDCOLUMNS]]
[--tagcolumns [TAGCOLUMNS]] [-g] [-b BATCHSIZE]
Csv to influxdb.
optional arguments:
-h, --help show this help message and exit
-i [INPUT], --input [INPUT]
Input csv file.
-d [DELIMITER], --delimiter [DELIMITER]
Csv delimiter. Default: ','.
-s [SERVER], --server [SERVER]
Server address. Default: localhost:8086
--ssl Use HTTPS instead of HTTP.
-u [USER], --user [USER]
User name.
-p [PASSWORD], --password [PASSWORD]
Password.
--dbname [DBNAME] Database name.
--create Drop database and create a new one.
-m [METRICNAME], --metricname [METRICNAME]
Metric column name. Default: value
-tc [TIMECOLUMN], --timecolumn [TIMECOLUMN]
Timestamp column name. Default: timestamp.
-tf [TIMEFORMAT], --timeformat [TIMEFORMAT]
Timestamp format. Default: '%Y-%m-%d %H:%M:%S' e.g.:
1970-01-01 00:00:00
-tz TIMEZONE, --timezone TIMEZONE
Timezone of supplied data. Default: UTC
--fieldcolumns [FIELDCOLUMNS]
List of csv columns to use as fields, separated by
comma, e.g.: value1,value2. Default: value
--tagcolumns [TAGCOLUMNS]
List of csv columns to use as tags, separated by
comma, e.g.: host,data_center. Default: host
-g, --gzip Compress before sending to influxdb.
-b BATCHSIZE, --batchsize BATCHSIZE
Batch size. Default: 5000.
Considering the csv file:
timestamp,value,computer
1970-01-01 00:00:00,51.374894,0
1970-01-01 00:00:01,74.562764,1
1970-01-01 00:00:02,17.833757,2
1970-01-01 00:00:03,40.125102,0
1970-01-01 00:00:04,88.160817,1
1970-01-01 00:00:05,28.401695,2
1970-01-01 00:00:06,98.670792,3
1970-01-01 00:00:07,69.532011,0
1970-01-01 00:00:08,39.198964,0
The following command will insert the file into a influxdb database:
python csv-to-influxdb.py --dbname test --input data.csv --tagcolumns computer --fieldcolumns value
Simple python script that inserts data points read from a csv file ( with timestamp in unix format , in second ) into a influxdb database.
Il file csv-to-influx-unixtime accetta come timestamp il formato unix_time in secondi.
Esempio :
python /home/pi/python/csv-to-influxdb-unixtime.py --dbname emoncms --input /home/pi/data/feed.csv --timeformat unix --metricname Meteo --fieldcolumns pm10, pm25, temp_esterna
Considering the csv file the field pm10,pm25,temp_esterna will be upload to influxdb with metric name 'Meteo':
timestamp,value,computer,pm10,pm25,temp_esterna
1587835925,51.37,0,35,21,18.9