2015-01-05 63 views
12

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

回答

12

,你可以放弃每一个表,并通过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" 

或者,也许你想添加新的主机集群?这很容易,你会得到免费的主 - 主复制品。 Cluster Setup

+0

如果我们想让它什么csv格式? – Luv33preet

+0

或者'curl -G'http:// hosta:8086/query?' --data-urlencode“db = dbname”--data-urlencode“q = SELECT * FROM series_name” –

14

正如ezotrank所说,你可以转储每个表。虽然ezotrank的答案中有一个“-d”。它应该是:

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,对不起,我刚刚直接发布的评论你的答案,但我没有足够的声誉分,要做到这一点呢。)

6

导出数据:

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 
+2

当处理海量数据库时,这实际上是唯一可行的方法。 – mogul

+0

是的,假设OP正在迁移到另一个InfluxDB主机(希望是同一版本),而不是某种其他类型的数据库 –

6

如果我使用卷曲,我得到超时,如果我不是它的格式使用influxd backup我可以读。

我越来越细的结果是这样的:

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