Elasticsearch Clone Index

Elasticsearch Clone Index

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:

    1. Elasticsearch erstellt einen neuen Index mit ähnlichen Definitionen als Quellindex.
    2. Der nächste Schritt besteht.
    3. LastLty, Elasticsearch, erholt den Klonindex so, als hätte er sich aus einem geschlossenen Zustand erholt.

Bedingungen für das Indexklonen

Die folgenden Bedingungen sind erforderlich, um einen Index zu klonen:

    1. Ein Index mit einem ähnlichen Namen wie das Ziel darf im Cluster nicht existieren.
    2. Der Quellindex muss Index sein.
    3. Die Anzahl der Scherben eines Quell- und Zielindex muss ähnlich sein.
    4. Der Knoten, auf dem der Klonprozess durchgeführt wird.

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!