Indeks klonów Elasticsearch

Indeks klonów Elasticsearch

W tym poście nauczymy się, jak klonować istniejący indeks w klastrze ElasticSearch. Może to pozwolić na przeprowadzenie modyfikacji indeksu bez zmiany oryginalnego indeksu. Umożliwia także szybką zmianę nazwy, indeksowania i przesyłania starych danych w jednym poleceniu.

Zanurzmy się.

Składnia żądania

Poniższy fragment pokazuje składnię API indeksu klonów:

POST //_clone/
UMIEŚCIĆ //_clone/


Żądanie klonuje indeks do nowego indeksu, w którym każdy z pierwotnych pierwotnych odłamków jest skopiowany do nowego podstawowego udostępniania w nowym indeksie.

Należy pamiętać, że Elasticsearch nie sklonuje szablonów indeksu i metadanych indeksu do indeksu klonów. Takie metadane obejmują aliasy, obserwujące CCR itp.

Jak działa klonowanie indeksu

ElasticSearch wykonuje następujące działania podczas klonowania indeksu:

    1. ElasticSearch tworzy nowy indeks o podobnych definicjach jak indeks źródłowy.
    2. Następnym krokiem jest trudne dooznawanie segmentów indeksu źródłowego do nowego wskaźnika klonu.
    3. Lastlty, ElasticSearch odzyskuje indeks klonów, jakby odzyskał się ze stanu zamkniętego.

Warunki klonowania indeksu

Do klonowania indeksu konieczne są następujące warunki:

    1. Indeks o podobnej nazwie, ponieważ cel nie może istnieć w klastrze.
    2. Indeks źródłowy musi być indeks.
    3. Liczba odłamków indeksu źródłowego i docelowego musi być podobna.
    4. Węzeł, w którym wykonywany jest proces klonu, musi mieć wystarczającą przestrzeń dysku, aby pomieścić nowy indeks.

Przykładowa ilustracja

Spójrzmy na przykład, jak używać interfejsu API klonu Elasticsearch do klonowania istniejącego indeksu.

Załóżmy, że mamy indeks o nazwie „Netflix”. Możemy utworzyć indeks klonów z żądaniem, jak pokazano:

Możemy zacząć od ustawienia indeksu na odczyt. ElasticSearch nie sklonuje indeksu w trybie zapisu:

curl -xput "http: // localhost: 9200/netflix/_block/read_only" -h "kbn -xsrf: raportowanie"


Powinno to powrócić w następujący sposób:


„Uznany”: prawda,
„Shards_acknowledged”: True,
„indeksy”: [

„Nazwa”: „Netflix”,
„zablokowane”: prawda

]


Na koniec możemy sklonować indeks, jak pokazano następująco:

curl -xpost "http: // localhost: 9200/netflix/_clone/netflix_copy" -h "kbn -xsrf: raportowanie"


Uruchomienie poprzedniego żądania powinno utworzyć klon indeksu i zwrócić wyjście jako:


„Uznany”: prawda,
„Shards_acknowledged”: True,
„Indeks”: „Netflix_copy”


Jeśli chcesz określić ustawienia indeksu i aliasy, możesz uruchomić następujące polecenie, jak pokazano:

curl -xpost "http: // localhost: 9200/netflix/_clone/netflix_cp" -h "kbn -xsrf: raportowanie" -h "content -typ: application/json" -d '

„Ustawienia”:
"indeks.numer_of_shards ”: 1,
„Number_of_replicas”: 3
,
"skróty":
„Netflix_alias”:

'


Należy pamiętać, że liczba odłamków indeksu klonu musi być podobna do liczby odłamków indeksu źródłowego.

Wyjście:


„Uznany”: prawda,
„Shards_acknowledged”: True,
„Indeks”: „Netflix_cp”


UWAGA: Elasticsearch zwraca uznane: prawdziwy status natychmiast. Żądanie nie czeka na zakończenie procesu klonowania.

Wniosek

W tym poście omówiliśmy podstawy pracy z interfejsem Elasticsearch Kloning API. To pozwala utworzyć kopię istniejącego indeksu w klastrze.

Dziękuje za przeczytanie!