In diesem Beitrag werden wir lernen, wie man einen vorhandenen Index in einem Elasticsearch -Cluster klont. Auf diese Weise können Sie Änderungen an einem Index durchführen, ohne den ursprünglichen Index zu ändern. Sie können auch die alten Daten in einem einzigen Befehl schnell umbenennen, indexieren und übertragen.
Lassen Sie uns eintauchen.
Syntax anfordern
Das folgende Ausschnitt zeigt die Syntax für die Klonindex -API:
POST //_Klon/
SETZEN //_Klon/
Die Anforderung kloniert den Index in einen neuen Index, in dem jeder der ursprünglichen Primärschards in eine neue Primärpraxis auf dem neuen Index kopiert wird.
Denken Sie daran, dass Elasticsearch die Indexvorlagen und die Indexmetadaten nicht in den Klonindex klonen werden. Solche Metadaten umfassen Aliase, CCR -Follower usw.
Wie das Indexklonen funktioniert
Elasticsearch führt die folgenden Aktionen aus, wenn Sie einen Index klonen:
Bedingungen für das Indexklonen
Die folgenden Bedingungen sind erforderlich, um einen Index zu klonen:
Beispielabbildung
Sehen wir uns ein Beispiel zur Verwendung der Elasticsearch -Klon -API an, um einen vorhandenen Index zu klonen.
Angenommen, wir haben einen Index namens "Netflix". Wir können mit der Anforderung wie gezeigt einen Klonindex erstellen:
Wir können zunächst den Index auf schreibgeschützte festlegen. Elasticsearch klonen im Schreibmodus keinen Index:
curl -xput "http: // localhost: 9200/netflix/_block/read_only" -h "kbn-xsrf: meldeing"
Dies sollte wie folgt zurückkehren:
"Anerkannt": wahr,
"shards_acknowgedged": wahr,
"Indizes": [
"Name": "Netflix",
"blockiert": wahr
]
Schließlich können wir den Index wie im Folgenden gezeigt klonen:
curl -xpost "http: // localhost: 9200/netflix/_clone/netflix_copy" -h "kbn-xsrf: meldung"
Das Ausführen der vorherigen Anforderung sollte einen Klon des Index erstellen und eine Ausgabe wie folgt zurückgeben
"Anerkannt": wahr,
"shards_acknowgedged": wahr,
"Index": "netflix_copy"
Wenn Sie die Indexeinstellungen und Aliase angeben möchten, können Sie den folgenden Befehl wie gezeigt ausführen:
curl -xpost "http: // localhost: 9200/netflix/_clone/netflix_cp" -h "kbn-xsrf: meldung" -h "content -type: application/json" -d '
"Einstellungen":
"Index.number_of_shards ": 1,
"number_of_replicas": 3
,
"Aliase":
"netflix_alias":
'
Beachten Sie, dass die Anzahl der Scherben des Klonindex der Anzahl der Scherben des Quellindex ähnlich sein muss.
Ausgang:
"Anerkannt": wahr,
"shards_acknowgedged": wahr,
"Index": "netflix_cp"
HINWEIS: Elasticsearch gibt einen bestätigten: wahren Status sofort zurück. Die Anfrage wartet nicht, bis der Klonierungsprozess abgeschlossen ist.
Abschluss
In diesem Beitrag haben wir die Grundlagen der Arbeit mit der Elasticsearch -Cloning -API besprochen. Auf diese Weise können Sie eine Kopie eines vorhandenen Index in Ihrem Cluster erstellen.
Danke fürs Lesen!