Elastyczne wyszukiwanie

Typ pola zmiany indeksu Elasticsearch

Typ pola zmiany indeksu Elasticsearch

Praca z bazami danych jest bardzo przyjemna, ale czasami może być trudna, zwłaszcza gdy mamy do czynienia z już istniejącymi danymi.

Na przykład, jeśli chcesz zmienić typ określonego pola, może to wymagać wyłączenia usługi, co może mieć poważne reperkusje, szczególnie w usługach przetwarzających duże ilości danych.

Na szczęście możemy wykorzystać zaawansowane funkcje Elasticsearch, takie jak ponowne indeksowanie, węzły pozyskiwania, potoki i procesory, aby takie zadania były bardzo łatwe.

Ten samouczek pokaże Ci, jak zmienić typ pola w określonym indeksie na inny, używając węzłów Elasticsearch Ingest. Zastosowanie tego podejścia wyeliminuje przestoje, które wpływają na usługi, przy jednoczesnym zachowaniu możliwości wykonywania zadań zmiany typu pola.

Wprowadzenie do węzłów pozyskiwania

Węzeł pozyskiwania Elasticsearch umożliwia wstępne przetwarzanie dokumentów przed ich indeksowaniem index.

Węzeł Elasticsearch to konkretna instancja Elasticsearch; połączone węzły (więcej niż jeden) tworzą jeden klaster.

Za pomocą żądania możesz wyświetlić węzły dostępne w działającym klastrze:

POBIERZ /_węzły/

Polecenie cURL do tego celu to:

curl -XGET „http://localhost:9200/_nodes/”

Wykonanie tego polecenia powinno dać ci ogromne informacje o węzłach, jak pokazano poniżej (obcięte dane wyjściowe):


"_węzły" :
„ogółem” : 3,
„udany” : 3,
"nie powiodło się" : 0
,
"nazwa_klastra" : "22e0bee6ef91461d82d9b0f1b4b13b4a",
"węzły" :
"gSlMjTKyTemoOX-EO7Em4w" :
"nazwa" : "instancja-000000003",
"adres_transportowy" : "172.28.86.133:19925",
„gospodarz” : „172.28.86.133",
"ip" : "172.28.86.133",
„wersja” : „7.10.2",
"build_flavor" : "domyślny",
"typ_budowy" : "doker",
"build_hash" : "747e1cc71def077253878a59143c1f785afa92b9",
„całkowity bufor_indeksowania” : 214748364,
"role" : [
"dane",
"data_cold",
"zawartość_danych",
"dane_gorące",
"data_ciepły",
"łykać",
"mistrz",
„zdalny_klient_klastra”,
"przekształcać"
],
"atrybuty" :
"strefa_dostępności_logicznej" : "strefa-0",
"nazwa_serwera" : "instancja-0000000003.22e0bee6ef91461d82d9b0f1b4b13b4a",
"availability_zone" : "us-west-1c",
„xpakiet.zainstalowany" : "prawda",
"instance_configuration" : "aws.dane.wysoki.i3",
"przekształcać.węzeł" : "prawda",
"region" : "us-zachód-1"
,
"ustawienia" :
"s3" :
"klient" :
"elastyczny-wewnętrzny-22e0be" :
"punkt końcowy" : "s3-us-west-1.amazonka.com"


,
--------------------------------wyjście obcięte---------------------

Domyślnie wszystkie węzły Elasticsearch umożliwiają pozyskiwanie i są w stanie obsługiwać operacje pozyskiwania. Jednak w przypadku ciężkich operacji przetwarzania można utworzyć pojedynczy węzeł przeznaczony tylko do przetwarzania.

Aby obsłużyć pre_process, przed zindeksowaniem dokumentów musimy zdefiniować potok, który określa serię preprocesorów.

Preprocesory to zestawy instrukcji owiniętych wokół potoku i wykonywane pojedynczo.

Poniżej znajduje się ogólna składnia sposobu definiowania potoku:


"description" : "Konwertuj mnie",
"przetwarzający" : [
"konwertuj" :
"pole" : "id",
"typ": "liczba całkowita"
]

Właściwość description mówi, co powinien osiągnąć potok. Następnym parametrem są preprocesory, przekazywane jako lista w kolejności ich wykonywania.

Utwórz potok konwersji

Aby utworzyć potok, którego użyjemy do konwersji typu, użyj żądania PUT z punktem końcowym API _ingest jako:

PUT _przetwarzanie/potok/konwertowanie_potoku

„description”: „konwertuje pole dayOfWeek na długie z liczby całkowitej”,
"przetwórcy" : [

"konwertuj" :
"pole" : "dzień tygodnia",
"typ": "długi"


]

Dla cURL użyj polecenia:

curl -XPUT "http://localhost:9200/_ingest/pipeline/convert_pipeline" -H 'Content-Type: application/json' -d'  "description": "konwertuje pole DayOfWeek na długie z liczby całkowitej",  " procesory" : [          "convert" :         "field" : "dayOfWeek",        "type": "long"          ]'

Reindeksuj i konwertuj Rodzaj

Gdy już mamy potok w węźle pozyskiwania, wystarczy wywołać API indeksujące i przekazać potok jako argument w miejscu docelowym treści żądania jako:

POST _ponowna indeksacja

"źródło":
"index": "kibana_sample_data_flights"
,
„docelowy”:
"index": "kibana_sample_type_diff",
"pipeline": "convert_pipeline"

Dla cURL:

curl -XPOST "http://localhost:9200/_reindex" -H 'Content-Type: application/json' -d'  "source":     "index": "kibana_sample_data_flights"  ,  "dest":     "index ": "kibana_sample_type_diff",    "pipeline": "convert_pipeline"  '

 Sprawdź konwersję

Aby sprawdzić, czy potok został zastosowany poprawnie, użyj żądania GET do pobrania tego konkretnego pola jako:

POBIERZ /kibana_sample_data_flights/_mapping/field/dayOfWeek
POBIERZ /kibana_sample_type_diff/_mapping/field/dayOfWeek

Powinno to zwrócić dane jako:

-----------------------INDEKS ORYGINALNY---------------------------

"kibana_sample_data_flights" :
"mapowania" :
"dzień tygodnia" :
"full_name" : "dayOfWeek",
"mapowanie" :
"dzień tygodnia" :
"typ" : "liczba całkowita"






-------------------------PONOWNIE ZINDEKSOWANE DANE-------------------------------

"kibana_sample_type_diff" :
"mapowania" :
"dzień tygodnia" :
"full_name" : "dayOfWeek",
"mapowanie" :
"dzień tygodnia" :
„typ” : „długi”





Wniosek

W tym przewodniku przyjrzeliśmy się, jak pracować z węzłami Elasticsearch Ingest w celu wstępnego przetwarzania dokumentów przed indeksowaniem, a tym samym konwertowania pola z jednego typu na inny.

Zapoznaj się z dokumentacją, aby dowiedzieć się więcej.

https://www.elastyczny.co/guide/en/elasticsearch/referencje/master/ingest.html

How to change Mouse pointer and cursor size, color & scheme on Windows 10
The mouse pointer and cursor in Windows 10 are very important aspects of the operating system. This can be said for other operating systems as well, s...
Gry Darmowe i otwarte silniki gier do tworzenia gier na Linuksa
Darmowe i otwarte silniki gier do tworzenia gier na Linuksa
Ten artykuł zawiera listę darmowych i otwartych silników gier, których można używać do tworzenia gier 2D i 3D w systemie Linux. Istnieje wiele takich ...
Gry Samouczek Shadow of the Tomb Raider dla systemu Linux
Samouczek Shadow of the Tomb Raider dla systemu Linux
Shadow of the Tomb Raider to dwunasty dodatek do serii Tomb Raider - przygodowej serii gier akcji stworzonej przez Eidos Montreal. Gra została dość do...