Praca z bazami danych jest bardzo zabawna, ale czasami może być trudna, szczególnie w przypadku już istniejących danych.
Na przykład, jeśli chcesz zmienić rodzaj określonego pola, może to wymagać usunięcia usługi, która może mieć poważne reperkusje, szczególnie w usługach, które przetwarzają duże ilości danych.
Na szczęście możemy użyć potężnych funkcji ElasticSearch, takich jak reindexing, spożycie węzłów, rurociągów i procesorów, aby takie zadania są bardzo łatwe.
Ten samouczek pokaże, jak zmienić typ pola w określonym indeksie na inny, używając węzłów ElasticSearch. Korzystanie z tego podejścia wyeliminuje przestoje, które wpływają na usługi, jednocześnie zarządzając zadaniami zmiany typu pola.
Wprowadzenie do połknięcia węzłów
Węzeł ElasticSearch Inchest umożliwia wstępne przetwarzanie dokumentów przed indeksowaniem.
Węzeł ElasticSearch jest konkretnym przykładem ElasticSearch; podłączone węzły (więcej niż jeden) tworzą pojedynczy klaster.
Możesz wyświetlić węzły dostępne w działającej klastrze z żądaniem:
Get /_nodes /Komenda Curl dla tego jest:
curl -xget „http: // localhost: 9200/_nodes/”Wykonanie tego polecenia powinno podać masywne informacje o węzłach, jak pokazano poniżej (obcięte wyjście):
Domyślnie wszystkie węzły ElasticSearch umożliwiają spożycie i są w stanie obsługiwać operacje. Jednak w przypadku ciężkich operacji spożywczych możesz utworzyć pojedynczy węzeł poświęcony tylko przyjmowaniu.
Aby obsłużyć pre_process, przed indeksowaniem dokumentów musimy zdefiniować rurociąg, który przedstawia serię preprocesorów.
Preprocesory to zestawy instrukcji owinięte wokół rurociągu i są wykonywane pojedynczo.
Poniżej znajduje się ogólna składnia sposobu zdefiniowania rurociągu:
Własność opisu mówi, co powinien osiągnąć rurociąg. Następnym parametrem są preprocesory, przekazywane jako lista w kolejności ich wykonania.
Utwórz potok konwertujący
Aby utworzyć rurociąg, którego użyjemy do konwersji typu, użyj żądania PUT z punktem końcowym API _ingest API jako:
Umieść _ingest/ruroline/convert_pipelineDo Curl użyj polecenia:
curl -xput "http: // localhost: 9200/_ingest/pipeline/convert_pipeline" -h 'content -type: application/json' -d '"Opis": "konwertuje pole DayOfWeek na długie od liczby całkowitych", "," procesory „: [„ konwertu ”: „ field ”:„ DayOfWeek ”,„ typ ”:„ long ”] 'Reindex i konwertuj Typ
Po otrzymaniu rurociągu w węźle Engest wszystko, co musimy zrobić, to wywołać interdeksualny interfejs API i przekazać rurociąg jako argument w przypadku ciała żądania:
Post _reindexDla Curl:
curl -xpost "http: // localhost: 9200/_reindex" -h 'content -Type: Application/Json' -d '"Źródło": "indeks": "kibana_sample_data_flights", „dest”: "indeks „:„ kibana_sample_type_diff ”,„ rurociąg ”:„ Convert_pipeline ” 'Sprawdź konwersję
Aby sprawdzić, czy rurociąg został zastosowany poprawnie, użyj żądania GET, aby pobrać to określone pole jako:
Get/kibana_sample_data_flights/_mapping/field/dayofweekPowinno to zwrócić dane jako:
-----------------------Oryginalny indeks---------------------------Wniosek
W tym przewodniku przyjrzeliśmy się, jak pracować z Elasticsearch, spożywaj węzły do dokumentów przed procesem przed indeksowaniem, przekształcając pole z jednego typu na inny.
Rozważ dokumentację, aby dowiedzieć się więcej.
https: // www.elastyczny.co/przewodnik/en/elasticsearch/reference/master/insust.html