从InfluxDB导出数据

时间:2015-01-05 12:22:48

标签: influxdb

有没有办法(插件或工具)从数据库(或数据库本身)导出数据?我正在寻找这个功能,因为我需要将DB从当前主机迁移到另一个主机。

7 个答案:

答案 0 :(得分:30)

导出数据:

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

grpcdb是DB的名称,在这种情况下,备份将保存在/ opt / 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

答案 1 :(得分:17)

您可以转储每个表并通过REST接口加载它们:

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"

或者,您是否想要将新主机添加到群集?这很容易,你可以免费获得master-master副本。 Cluster Setup

答案 2 :(得分:15)

正如ezotrank所说,你可以转储每张桌子。缺少" -d"但是在ezotrank的回答中。它应该是:

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,对不起,我会直接在你的回答上发表评论,但我还没有足够的声誉来做到这一点。)

答案 3 :(得分:12)

如果我使用curl,我会收到超时,如果我使用influxd backup,则不能使用我可以阅读的格式。

我得到了这样的好结果:

influx -host influxdb.mydomain.com -database primary -format csv -execute "select time,value from \"continuous\" where channel='ch123'" > outtest.csv

答案 4 :(得分:2)

如果您有权访问运行Influx db的计算机,我会说使用influx_inspect命令。该命令非常简单且非常快速。它将把您的数据库转储到line protocol中。然后,您可以使用influx -import命令导入此转储。

答案 5 :(得分:2)

1.5开始,InfluxDB OSS备份实用程序提供了一个更新的选项,该选项更加方便:

-portable:以较新的InfluxDB Enterprise兼容格式生成备份文件。强烈建议所有InfluxDB OSS用户

  

导出

要备份所有内容:

influxd backup -portable <path-to-backup>

仅备份myperf数据库:

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

导入

要还原在备份目录中找到的所有数据库,请执行以下操作:

influxd restore -portable <path-to-backup>

仅还原myperf数据库(myperf数据库必须不存在):

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

其他选项包括指定timestampshard等。请参阅所有其他受支持的选项here

答案 6 :(得分:1)

如果要以可读格式导出,则首选使用inspect命令。 要导出名称为HomeData的数据库,命令为:

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

-waldir和-datdir的参数可以在/etc/influxdb/influxdb.conf中找到。

要再次导入此文件,命令为:

influx -import -path=influx_backup.db