Есть ли способ создать файл дампа, содержащий все данные индекса среди его настроек и сопоставлений?
A Подобным образом, как mongoDB делает с mongodump
или как в Solr папка с данными скопирована в резервную папку.
Ура!
Есть ли способ создать файл дампа, содержащий все данные индекса среди его настроек и сопоставлений?
A Подобным образом, как mongoDB делает с mongodump
или как в Solr папка с данными скопирована в резервную папку.
Ура!
Elasticsearch теперь поддерживает это из коробки:
https://www.elastic.co/guide/en/elasticsearch/reference/current/modules-snapshots.html
Вот новый инструмент, над которым мы работали именно для этой цели https://github.com/taskrabbit/elasticsearch-dump. Вы можете экспортировать индексы в/из файлов JSON или из одного кластера в другой.
ElasticSearch предоставляет способ создания и восстановления данных. Простая команда для этого:
CURL -XPUT 'localhost:9200/_snapshot/<backup_folder name>/<backupname>' -d '{
"indices": "<index_name>",
"ignore_unavailable": true,
"include_global_state": false
}'
Теперь, как создать эту папку, как включить этот путь к папке в конфигурации ElasticSearch, чтобы он был доступен для ElasticSearch, метод восстановления хорошо объяснен . Чтобы увидеть его практическое демо-приложение здесь.
Сами данные представляют собой один или несколько индексов lucene, так как вы можете иметь несколько осколков. То, что вам также нужно сделать для резервного копирования, - это состояние кластера, которое содержит всю информацию о кластере, доступные индексы, их сопоставления, осколки, из которых они состоят и т.д.
Все это в каталоге data
, но вы можете просто скопировать его. Его структура довольно интуитивно понятна. Прямо перед копированием лучше отключить автоматический сброс (для резервного копирования последовательного представления индекса и предотвращения записи на нем при копировании файлов), выпустить ручную флеш, отключить выделение. Не забудьте скопировать каталог со всех узлов.
Кроме того, следующая основная версия elasticsearch собирается предоставить новый snapshot/restore api, который позволит вам выполнять инкрементные снимки и восстанавливать их также через api. Вот связанная с этим проблема github: https://github.com/elasticsearch/elasticsearch/issues/3826.
Вы также можете вывести данные эластичного поиска в формате JSON по запросу http: https://www.elastic.co/guide/en/elasticsearch/reference/current/search-request-scroll.html. CURL -XPOST 'https://ES/INDEX/_search?scroll=10m'
CURL -XPOST 'https://ES/_search/scroll' -d '{"scroll": "10m", "scroll_id": "ID"}'