Est-il possible de créer un fichier de vidage contenant toutes les données d'un index avec ses paramètres et ses mappages?
Une manière similaire à celle de mongoDB avec mongodump
ou comme dans Solr son dossier de données est copié dans un emplacement de sauvegarde.
À votre santé!
Elasticsearch prend désormais en charge cette solution:
https://www.elastic.co/guide/en/elasticsearch/reference/current/modules-snapshots.html
Voici un nouvel outil sur lequel nous travaillons exactement à cette fin https://github.com/taskrabbit/elasticsearch-dump . Vous pouvez exporter des index dans/hors de fichiers JSON ou d'un cluster à un autre.
ElasticSearch lui-même fournit un moyen de créer une sauvegarde et une restauration de données. La commande simple à faire est la suivante:
CURL -XPUT 'localhost:9200/_snapshot/<backup_folder name>/<backupname>' -d '{
"indices": "<index_name>",
"ignore_unavailable": true,
"include_global_state": false
}'
Maintenant, comment créer ce dossier, comment inclure ce chemin de dossier dans la configuration ElasticSearch, afin qu’il soit disponible pour ElasticSearch, méthode de restauration, est bien expliqué ici . Pour voir sa démonstration pratique surf ici .
Les données elles-mêmes sont un ou plusieurs indices lucene, car vous pouvez avoir plusieurs fragments. Ce que vous devez également sauvegarder est l’état du cluster, qui contient toutes sortes d’informations concernant le cluster, les index disponibles, leurs mappages, les fragments qui les composent, etc.
Tout cela se trouve dans le répertoire data
, vous pouvez simplement le copier. Sa structure est assez intuitive. Juste avant de copier, il est préférable de désactiver le vidage automatique (afin de sauvegarder une vue cohérente de l'index et d'éviter les écritures lors de la copie de fichiers), de lancer un vidage manuel, ainsi que de désactiver l'allocation. N'oubliez pas de copier le répertoire à partir de tous les nœuds.
En outre, la prochaine version majeure d’élasticsearch fournira une nouvelle api de capture instantanée/restauration qui vous permettra d’effectuer des instantanés incrémentiels et de les restaurer également via api. Voici le problème lié à github: https://github.com/elasticsearch/elasticsearch/issues/3826 .