Экспорт данных из InfluxDB

Есть ли способ (плагин или инструмент) для экспорта данных из базы данных (или самой базы данных)? Я ищу эту функцию, так как мне нужно перенести БД с текущего хоста на другой.

Ответ 1

Вы можете сбрасывать каждую таблицу и загружать их через интерфейс 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"

Или, может быть, вы хотите добавить новый узел в кластер? Это легко, и вы получите реплика мастер-мастер бесплатно. Настройка кластеров

Ответ 2

Экспорт данных:

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

grpcdb - это имя БД, и резервное копирование будет сохранено в каталоге /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

Ответ 3

Как говорит 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, извините, я бы просто отправил комментарий непосредственно на ваш ответ, но у меня пока нет достаточных очков репутации).

Ответ 4

Если я использую curl, я получаю таймауты, и если я использую influxd backup, это не в формате, который я могу прочитать.

Я получаю хорошие результаты следующим образом:

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

Ответ 5

Начиная с 1.5 года, утилита резервного копирования InfluxDB OSS предоставляет более новую опцию, которая гораздо удобнее:

-portable: -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>

Дополнительные параметры включают указание timestamp, shard и т.д. См. Все другие поддерживаемые параметры здесь.

Ответ 6

Если у вас есть доступ к машине, на которой запущен Influx db, я бы сказал, воспользуйтесь командой infx_inspect. Команда простая и очень быстрая. Это сбросит вашу базу данных в линейном протоколе. Затем вы можете импортировать этот дамп, используя команду Infx -import.

Ответ 7

Если вы хотите экспортировать данные в удобочитаемом формате, предпочтение отдается команде 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