Is er een manier om een dumpbestand te maken dat alle gegevens van een index bevat, inclusief de instellingen en toewijzingen?
Een vergelijkbare manier als mongoDB doet met mongodump
of zoals in Solr de gegevensmap wordt gekopieerdnaar een back-uplocatie.
Proost!
Antwoord 1, autoriteit 100%
Hier is een nieuwe tool waaraan we hebben gewerkt voor precies dit doel https://github.com/taskrabbit/elasticsearch-dump . U kunt indices exporteren naar/uit JSON-bestanden of van het ene cluster naar het andere.
Antwoord 2, autoriteit 52%
Elasticsearch ondersteunt standaard een snapshot-functie:
https://www.elastic.co /guide/nl/elasticsearch/referentie/current/modules-snapshots.html
Antwoord 3, autoriteit 23%
Voor uw geval is Elasticdumphet perfecte antwoord.
Eerst moet je de mapping downloaden en dan de index
# Install the elasticdump
npm install elasticdump -g
# Dump the mapping
elasticdump --input=http://<your_es_server_ip>:9200/index --output=es_mapping.json --type=mapping
# Dump the data
elasticdump --input=http://<your_es_server_ip>:9200/index --output=es_index.json --type=data
Als je de gegevens op een server wilt dumpen, raad ik je aan om esdump te installeren via docker. U kunt meer informatie krijgen van deze website Bloglink
Antwoord 4, autoriteit 21%
We kunnen elasticdump gebruiken om de back-up te maken en deze te herstellen. We kunnen gegevens van de ene server/cluster naar een andere server/cluster verplaatsen.
1. Commando’s om indexgegevens van de ene server/cluster naar de andere te verplaatsen met behulp van elasticdump
.
# Copy an index from production to staging with analyzer and mapping:
elasticdump \
--input=http://production.es.com:9200/my_index \
--output=http://staging.es.com:9200/my_index \
--type=analyzer
elasticdump \
--input=http://production.es.com:9200/my_index \
--output=http://staging.es.com:9200/my_index \
--type=mapping
elasticdump \
--input=http://production.es.com:9200/my_index \
--output=http://staging.es.com:9200/my_index \
--type=data
2. Commando’s om alle indexgegevens van de ene server/cluster naar de andere te verplaatsen met behulp van multielasticdump
.
Back-up
multielasticdump \
--direction=dump \
--match='^.*$' \
--limit=10000 \
--input=http://production.es.com:9200 \
--output=/tmp
Herstellen
multielasticdump \
--direction=load \
--match='^.*$' \
--limit=10000 \
--input=/tmp \
--output=http://staging.es.com:9200
Opmerking:
-
Als –direction dump is, wat de standaard is, MOET –input een URL zijn voor de basislocatie van een ElasticSearch-server (dwz http://localhost:9200) en –output MOETEN een directory zijn. Voor elke index die wel overeenkomt, wordt een gegevens-, kaart- en analysebestand gemaakt.
-
Voor het laden van bestanden die je hebt gedumpt vanuit multi-elasticsearch, moet –direction worden ingesteld om te laden, –input MOET een map zijn van een multielasticsearch-dump en –output MOET een Elasticsearch-server-URL zijn.
-
Het 2e commando maakt een back-up van
settings
,mappings
,template
endata
zelf als JSON-bestanden. -
De
--limit
mag niet meer zijn dan10000
anders geeft het een uitzondering. - Meer details hier.
Antwoord 5, autoriteit 18%
ElasticSearch biedt zelf een manier om back-up en herstel van gegevens te maken. De eenvoudige opdracht om dit te doen is:
CURL -XPUT 'localhost:9200/_snapshot/<backup_folder name>/<backupname>' -d '{
"indices": "<index_name>",
"ignore_unavailable": true,
"include_global_state": false
}'
Hoe u deze map maakt, hoe u dit mappad in de ElasticSearch-configuratie opneemt, zodat het beschikbaar is voor ElasticSearch, herstelmethode, wordt goed uitgelegd hier. Om de praktische demo te zien, surf hier.
Antwoord 6, autoriteit 3%
De gegevens zelf zijn een of meer lucene-indexen, aangezien u meerdere shards kunt hebben. Waar je ook een back-up van moet maken, is de clusterstatus, die allerlei informatie bevat over het cluster, de beschikbare indices, hun toewijzingen, de shards waaruit ze zijn samengesteld, enz.
Het staat echter allemaal in de data
directory, je kunt het gewoon kopiëren. De structuur is vrij intuïtief. Vlak voor het kopiëren is het beter om automatisch opschonen uit te schakelen (om een back-up te maken van een consistent beeld van de index en om schrijfacties erop te vermijden tijdens het kopiëren van bestanden), een handmatige uitspoeling uit te voeren en ook toewijzing uit te schakelen. Vergeet niet om de map van alle knooppunten te kopiëren.
Bovendien zal de volgende grote versie van elasticsearch een nieuwe snapshot/restore-api bieden waarmee u incrementele snapshots kunt maken en deze ook via api kunt herstellen. Hier is het gerelateerde github-probleem: https://github.com/elasticsearch/elasticsearch/issues/3826.
Antwoord 7, autoriteit 2%
Op het moment van schrijven van dit antwoord (2021), is de officiële manier om een back-up te maken van een ElasticSearch-cluster door er een momentopname van te maken. Raadpleeg: https://www.elastic.co /guide/en/elasticsearch/reference/current/snapshot-restore.html
Antwoord 8, autoriteit 2%
U kunt elasticsearch-gegevens ook dumpen in JSON-indeling via http-verzoek:
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"}'
Antwoord 9, autoriteit 2%
Om alle documenten van ElasticSearch naar JSON te exporteren, kunt u de tool esbackupexporter gebruiken. Het werkt met index-snapshots. Het neemt de container met snapshots (S3, Azure blob of bestandsmap) als invoer en voert een of meerdere gecomprimeerde JSON-bestanden per index per dag uit. Het is best handig bij het exporteren van uw historische snapshots. Om uw hot index-gegevens te exporteren, moet u mogelijk eerst de momentopname maken (zie de antwoorden hierboven).
Antwoord 10
Als u de gegevens wilt masseren op weg naar Elasticsearch, kunt u Logstash gebruiken. Het heeft een handige Elasticsearch Input Plugin.
En dan kun je naar alles exporteren, van een CSV-bestand tot het opnieuw indexeren van de gegevens op een ander Elasticsearch-cluster. Maar voor dat laatste heb je ook de Elasticsearch’s eigen Reindex.