Elasticsearch Clone Index

Elasticsearch Clone Index

I dette innlegget lærer vi hvordan du kloner en eksisterende indeks i en Elasticsearch -klynge. Dette kan tillate deg å utføre endringer i en indeks uten å endre den opprinnelige indeksen. Det lar deg også raskt gi nytt navn til, indeksere og overføre de gamle dataene i en enkelt kommando.

La oss dykke inn.

Be om syntaks

Følgende utdrag viser syntaks for klonindeks -API:

POST //_Clone/
SETTE //_Clone/


Forespørselen kloner indeksen til en ny indeks der hver av den opprinnelige primære skjæren kopieres til en ny primær som deles på den nye indeksen.

Husk at Elasticsearch ikke kloner indeksmalene og indeksmetadataene til klonindeksen. Slike metadata inkluderer aliaser, CCR -følgere osv.

Hvordan indekskloning fungerer

Elasticsearch utfører følgende handlinger når du kloner en indeks:

    1. Elasticsearch oppretter en ny indeks med lignende definisjoner som kildeindeksen.
    2. Neste trinn er hardkobling av segmentene av kildeindeksen til den nye klonindeksen.
    3. Lastlty, Elasticsearch gjenoppretter klonindeksen som om den har kommet seg fra en lukket tilstand.

Betingelser for indekskloning

Følgende forhold er nødvendige for kloning av en indeks:

    1. En indeks med et lignende navn som målet må ikke eksistere i klyngen.
    2. Kildeindeksen må være indeks.
    3. Antall skjær for en kilde- og målindeks må være likt.
    4. Noden som klonprosessen utføres på må ha tilstrekkelig diskplass for å imøtekomme den nye indeksen.

Eksempel illustrasjon

La oss se på et eksempel på hvordan du bruker Elasticsearch Clone API for å klone en eksisterende indeks.

Anta at vi har en indeks som heter “Netflix”. Vi kan opprette en klonindeks med forespørselen som vist:

Vi kan starte med å sette indeksen til skrivebeskyttet. Elasticsearch vil ikke klone en indeks i skrivemodus:

Curl -xput "http: // localhost: 9200/netflix/_block/read_only" -h "kbn -xsrf: rapportering"


Dette skal komme tilbake som følger:


"anerkjent": sant,
"shards_acknowleded": true,
"Indekser": [

"Navn": "Netflix",
"blokkert": sant

]


Til slutt kan vi klone indeksen som vist i følgende:

Curl -xpost "http: // localhost: 9200/netflix/_clone/netflix_copy" -h "kbn -xsrf: rapportering"


Å kjøre forrige forespørsel skal opprette en klone av indeksen og returnere en utdata som:


"anerkjent": sant,
"shards_acknowleded": true,
"Indeks": "Netflix_copy"


Hvis du ønsker å spesifisere indeksinnstillingene og aliasene, kan du kjøre følgende kommando som vist:

Curl -xpost "http: // localhost: 9200/netflix/_clone/netflix_cp" -h "kbn -xsrf: rapportering" -h "innholdstype: applikasjon/json" -d '

"Innstillinger":
"Indeks.number_of_shards ": 1,
"number_of_replicas": 3
,
"aliaser":
"Netflix_alias":

'


Husk at antall skjær for klonindeksen må være likt antall skjær for kildeindeksen.

Produksjon:


"anerkjent": sant,
"shards_acknowleded": true,
"Indeks": "Netflix_CP"


Merk: Elasticsearch returnerer en anerkjent: ekte status umiddelbart. Forespørselen venter ikke på at kloningsprosessen skal fullføres.

Konklusjon

I dette innlegget diskuterte vi grunnleggende om å jobbe med Elasticsearch Cloning API. Dette lar deg opprette en kopi av en eksisterende indeks i klyngen din.

Takk for at du leste!