ElasticSearch Reindex Wszystkie wskaźniki i sprawdź status

ElasticSearch Reindex Wszystkie wskaźniki i sprawdź status
Kiedy pracujesz z bazami danych, nieuchronnie musisz wprowadzić zmiany, takie jak dodawanie, usuwanie i modyfikowanie danych.

Kiedy modyfikujesz dane w indeksie ElasticSearch, może to prowadzić do przestoju, gdy funkcjonalność zostanie zakończona, a dane zostaną ponownie indeksowane.

Ten samouczek da ci znacznie lepszy sposób aktualizacji wskaźników bez doświadczania przestojów z istniejącym źródłem danych. Korzystając z interfejsu API Reindexing Elasticsearch, skopiujemy dane z określonego źródła do innego.

Zacznijmy.

NOTATKA: Zanim zaczniemy, operacje reindexing są ciężkie zasoby, szczególnie na dużych indeksach. Aby zminimalizować czas wymagany do reindexingu, wyłącz numer_of_replicas, ustawiając wartość na 0 i włącz je po zakończeniu procesu.

Włącz pole _Source

Operacja reindexing wymaga włączenia pola źródłowego na wszystkich dokumentach w indeksie źródłowym. Zauważ, że pole źródłowe nie jest indeksowane i nie można go przeszukać, ale jest przydatne dla różnych żądań.

Włącz pole _source, dodając wpis, jak pokazano poniżej:

Umieść indeks_1

„Mapowania”:
"_źródło":
„Włączone”: prawda


Reindex wszystkie dokumenty

Aby reindex dokumenty, musimy określić źródło i miejsce docelowe. Źródło i miejsce docelowe mogą być istniejącymi indeksami, aliasami indeksu i strumieni danych. Możesz użyć indeksów z klastra lokalnego lub zdalnego.

NOTATKA: Aby indeksowanie nastąpiło pomyślnie, zarówno źródło, jak i miejsce docelowe nie mogą być podobne. Musisz także skonfigurować miejsce docelowe zgodnie z wymaganiami przed reindexing.

Ogólna składnia do reindexingu jest:

Post /_reindex

Zacznijmy od utworzenia dwóch wskaźników. Pierwszy będzie źródłem, a drugi będzie celem.

Put /Source_Index

„Ustawienia”: "number_of_replicas": 0, „Number_of_shards”: 1,
„MAPPINGS”: „_SOURCE”: „Włączone”: true, „aliases”:
„alias_1”: ,
„alias_2”:
„Filter”: „termin”:
"użytkownik.Id „:„ Kibana ”
, „routing”: „1”


Polecenie Curl to:

curl -xput "http: // localhost: 9200/source_index" -h 'content -Type: Application/Json' -d '"settings": "number_of_replicas": 0, „Number_of_shards”: 1, „mapowania” : „_source”: „enabled”: true, „aliases”: „alias_1”: , „alias_2”: „Filter”: "term": "użytkownik użytkownika.id „:„ kibana ”,„ routing ”:„ 1 ” '

Teraz dla indeksu docelowego (możesz użyć powyższego polecenia i zmienić kilka rzeczy lub użyć tej podanej poniżej):

Put /Destination_Index

„Ustawienia”: "number_of_replicas": 0, „Number_of_shards”: 1,
„MAPPINGS”: „_SOURCE”: „Włączone”: true, „aliases”:
„alias_3”: ,
„alias_4”:
„Filter”: „termin”:
"użytkownik.Id „:„ Kibana ”
, „routing”: „1”


Jak zawsze użytkownicy Curl mogą użyć polecenia:

curl -xput "http: // localhost: 9200/destying_index" -h 'content -Type: Application/Json' -d '"settings": "number_of_replicas": 0, „Number_of_shards”: 1, „mapy” : „_source”: „enabled”: true, „aliases”: "alias_3": , "alias_4": "filtr": "termin": "użytkownik użytkownika.id „:„ kibana ”,„ routing ”:„ 1 ” '

Teraz mamy wskaźniki, których chcemy użyć, możemy następnie przejść do reindex dokumentów.

Rozważ poniższe żądanie, które kopiuje dane z Source_Index do Destination_Index:

Post _reindex

"źródło":
„Indeks”: „źródło_index”
,
„dest”:
„Indeks”: „Destination_Index”

Komenda Curl dla tego jest:

curl -xpost "http: // localhost: 9200/_reindex" -h 'content -type: application/json' -d '"Źródło": "indeks": ".kibana „,„ dest ”: „ indeks ”:„ destiner_index ” '

Wykonanie tego polecenia powinno podać szczegółowe informacje o przeprowadzonej operacji.

NOTATKA: Źródło_index powinien mieć dane.


„wziął”: 2836,
„timed_out”: false,
„Total”: 13059,
„Zaktualizowano”: 0,
„Utworzone”: 13059,
„Usunięty”: 0,
„Partie”: 14,
„Version_conflicts”: 0,
„Noops”: 0,
„Próby”:
„Bulk”: 0,
„Wyszukaj”: 0
,
„Drottled_millis”: 0,
„requests_per_second”: -1.0,
„Drottled_until_millis”: 0,
„Awarie”: []

Sprawdzanie statusu reindexing

Możesz wyświetlić status operacji reindexing, po prostu za pomocą _Tasks. Na przykład rozważ poniższe żądanie:

Get /_Tasks?szczegółowe = True & Actions =*Reindex & Group_by = rodzice

Polecenie Curl to:

curl -xget "http: // localhost: 9200/_TASKS?szczegółowe = True & Actions =*Reindex & Group_by = rodzice ”

To powinno zawierać szczegółowe informacje na temat procesu reindexing, jak pokazano poniżej:


„Zadania”:
„Ftd_2ixjsxudn_ua4tzhhg: 51847”:
„Node”: „ftd_2ixjsxudn_ua4tzhhg”,
„ID”: 51847,
„Typ”: „Transport”,
„Action”: „Wskaźniki: dane/zapis/reindex”,
„Status”:
„Total”: 13059,
„Zaktualizowano”: 9000,
„Utworzone”: 0,
„Usunięty”: 0,
„Partie”: 10,
„Version_conflicts”: 0,
„Noops”: 0,
„Próby”:
„Bulk”: 0,
„Wyszukaj”: 0
,
„Drottled_millis”: 0,
„requests_per_second”: -1.0,
„Drottled_until_millis”: 0
,
„Opis”: „Reindex z [źródło_index] do [Desting_Index] [_ Doc]”,
„start_time_in_millis”: 1611247308063,
„Running_time_in_nanos”: 2094157836,
„Anullowable”: True,
„Nagłówki”:


Wniosek

Omówiliśmy wszystko, co musisz wiedzieć o korzystaniu z API Reindexing Elasticsearch do kopiowania dokumentów z jednego indeksu (źródła) do drugiego (miejsce docelowe). Chociaż API Reindexing ma coś więcej, ten przewodnik powinien pomóc Ci zacząć.