Export data from InfluxDB

前端 未结 7 1721
盖世英雄少女心
盖世英雄少女心 2020-12-13 19:17

Is there a way (plugin or tool) to export the data from the database (or database itself) ? I\'m looking for this feature as I need to migrate a DB from present host to anot

相关标签:
7条回答
  • 2020-12-13 19:27

    As ezotrank says, you can dump each table. There's a missing "-d" in ezotrank's answer though. It should be:

    curl "http://hosta:8086/db/dbname/series?u=root&p=root&q=select%20*%20from%20series_name%3B" > series_name.json
    curl -XPOST -d @series_name.json "http://hostb:8086/db/dbname/series?u=root&p=root"
    

    (Ezotrank, sorry, I would've just posted a comment directly on your answer, but I don't have enough reputation points to do that yet.)

    0 讨论(0)
  • 2020-12-13 19:29

    If You want to export in an readable format, the inspect command is to prefer. To export the database with the name HomeData the command is:

    sudo influx_inspect export -waldir /var/lib/influxdb/wal -datadir /var/lib/influxdb -out "influx_backup.db" -database HomeData
    

    The parameters for -waldir and -datdir can be found in /etc/influxdb/influxdb.conf.

    To import this file again, the command is:

    influx -import -path=influx_backup.db
    
    0 讨论(0)
  • 2020-12-13 19:31

    Export data:

    sudo service influxdb start (Or leave this step if service is already running)
    influxd backup -database grpcdb /opt/data  
    

    grpcdb is name of DB and back up will be saved under /opt/data directory in this case.

    Import Data:

    sudo service influxdb stop  (Service should not be running)
    influxd restore -metadir /var/lib/influxdb/meta /opt/data
    influxd restore -database grpcdb -datadir /var/lib/influxdb/data /opt/data
    sudo service influxdb start
    
    0 讨论(0)
  • 2020-12-13 19:35

    If you have access to the machine running Influx db I would say use the influx_inspect command. The command is simple and very fast. It will dump your db in line protocol. You can then import this dump using influx -import command.

    0 讨论(0)
  • 2020-12-13 19:38

    You could dump each table and load them through REST interface:

    curl "http://hosta:8086/db/dbname/series?u=root&p=root&q=select%20*%20from%20series_name%3B" > series_name.json
    curl -XPOST -d @series_name.json "http://hostb:8086/db/dbname/series?u=root&p=root"
    

    Or, maybe you want to add new host to cluster? It's easy and you'll get master-master replica for free. Cluster Setup

    0 讨论(0)
  • 2020-12-13 19:40

    From 1.5 onwards, the InfluxDB OSS backup utility provides a newer option which is much more convenient:

    -portable: Generates backup files in the newer InfluxDB Enterprise-compatible format. Highly recommended for all InfluxDB OSS users

    Export

    To back up everything:

    influxd backup -portable <path-to-backup>
    

    To backup only the myperf database:

    influxd backup -portable -database myperf <path-to-backup>
    

    Import

    To restore all databases found within the backup directory:

    influxd restore -portable <path-to-backup>
    

    To restore only the myperf database (myperf database must not exist):

    influxd restore -portable -db myperf <path-to-backup>
    

    Additional options include specifying timestamp , shard etc. See all the other supported options here.

    0 讨论(0)
提交回复
热议问题