Elastisk sökning

Elasticsearch Reindex Ändra fälttyp

Elasticsearch Reindex Ändra fälttyp

Att arbeta med databaser är mycket roligt men kan ibland vara utmanande, särskilt när man hanterar redan existerande data.

Om du till exempel vill ändra typen av ett visst fält kan det kräva att du tar ner tjänsten, vilket kan få allvarliga konsekvenser, särskilt i tjänster som behandlar stora mängder data.

Lyckligtvis kan vi använda Elasticsearchs kraftfulla funktioner som Reindexing, intag noder, rörledningar och processorer för att göra sådana uppgifter väldigt enkla.

Denna handledning visar hur du ändrar en fälttyp i ett visst index till ett annat med hjälp av Elasticsearch Ingest-noder. Genom att använda detta tillvägagångssätt elimineras stillestånd som påverkar tjänster samtidigt som du lyckas utföra uppgifterna för ändring av fälttyp.

Introduktion till Ingest Nodes

Elasticsearchs intagningsnod låter dig förbehandla dokument innan de indexeras.

En Elasticsearch-nod är en specifik förekomst av Elasticsearch; anslutna noder (mer än en) skapar ett enda kluster.

Du kan visa de noder som är tillgängliga i det löpande klustret med begäran:

GET / _noder /

CURL-kommandot för detta är:

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

Att utföra detta kommando bör ge dig massiv information om noder, som visas nedan (trunkerad utdata):


"_knutpunkter" :
"totalt": 3,
"lyckad": 3,
"misslyckades": 0
,
"cluster_name": "22e0bee6ef91461d82d9b0f1b4b13b4a",
"knutpunkter" :
"gSlMjTKyTemoOX-EO7Em4w":
"namn": "instans-0000000003",
"transport_address": "172.28.86.133: 19925 ",
"värd": "172.28.86.133 ",
"ip": "172.28.86.133 ",
"version": "7.10.2 ",
"build_flavor": "standard",
"build_type": "docker",
"build_hash": "747e1cc71def077253878a59143c1f785afa92b9",
"total_indexing_buffer": 214748364,
"roller": [
"data",
"data_cold",
"data_content",
"data_hot",
"data_warm",
"inta",
"bemästra",
"remote_cluster_client",
"omvandla"
],
"attribut":
"logical_availability_zone": "zon-0",
"server_name": "instans-0000000003.22e0bee6ef91461d82d9b0f1b4b13b4a ",
"tillgänglighetszon": "us-west-1c",
"xpack.installerat ":" sant ",
"instans_konfiguration": "aws.data.highio.i3 ",
"omvandla.node ":" true ",
"region": "us-west-1"
,
"inställningar" :
"s3":
"klient":
"elastisk-inre-22e0be":
"endpoint": "s3-us-west-1.amazonaws.com "


,
--------------------------------utgång trunkerad---------------------

Som standard aktiverar alla Elasticsearch-noder intag och kan hantera ingångsoperationer. För tunga intagsåtgärder kan du dock skapa en enda nod som endast är avsedd för intag.

För att hantera pre_process, innan vi indexerar dokumenten, måste vi definiera en pipeline som anger förprocessorserien.

Förprocessorer är instruktionsuppsättningar som lindas runt en rörledning och körs en i taget.

Följande är den allmänna syntaxen för hur man definierar en pipeline:


"description": "Konvertera mig",
"processorer": [
"konvertera" :
"field": "id",
"type": "heltal"
]

Beskrivningsegenskapen säger vad rörledningen ska uppnå. Nästa parameter är förprocessorerna som skickas vidare som en lista i den ordning de körs.

Skapa en konverteringsrörledning

För att skapa en pipeline som vi kommer att använda för att konvertera en typ, använd PUT-begäran med _ingest API-slutpunkten som:

PUT _ingest / pipeline / convert_pipeline

“Beskrivning”: “konverterar fältet dayOfWeek till ett långt från heltal”,
"processorer": [

"konvertera" :
"field": "dayOfWeek",
"typ": "lång"


]

För cURL, använd kommandot:

curl -XPUT "http: // localhost: 9200 / _ingest / pipeline / convert_pipeline" -H 'Content-Type: application / json' -d '"description": "konverterar fältet dayOfWeek till en lång från heltal", " processorer ": [" convert ": " field ":" dayOfWeek "," type ":" long "] '

Reindex och konvertera Typ

När vi har pipelinen i ingångsnoden är allt vi behöver göra att ringa indexerings-API: et och skicka pipelinen som ett argument i beställningens mål som:

POST _reindex

“Källa”:
"index": "kibana_sample_data_flights"
,
"dest":
"index": "kibana_sample_type_diff",
"pipeline": "convert_pipeline"

För 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 " '

 Verifiera konvertering

För att verifiera att rörledningen har tillämpats korrekt, använd GET-begäran för att hämta det specifika fältet som:

GET / kibana_sample_data_flights / _mapping / field / dayOfWeek
GET / kibana_sample_type_diff / _mapping / field / dayOfWeek

Detta ska returnera uppgifterna som:

-----------------------ORIGINALINDEX---------------------------

"kibana_sample_data_flights":
"mappningar":
"dag i veckan" :
"full_name": "dayOfWeek",
"mapping":
"dag i veckan" :
"type": "heltal"






-------------------------OMINDEXERADE DATA-------------------------------

"kibana_sample_type_diff":
"mappningar":
"dag i veckan" :
"full_name": "dayOfWeek",
"mapping":
"dag i veckan" :
"typ": "lång"





Slutsats

I den här guiden har vi tittat på hur man kan arbeta med Elasticsearch Ingest-noder för att förbehandla dokument innan indexering, och därmed konvertera ett fält från en typ till en annan.

Tänk på dokumentationen för att lära dig mer.

https: // www.elastisk.co / guide / sv / elasticsearch / reference / master / ingest.html

Mus Kontrollera och hantera musrörelser mellan flera skärmar i Windows 10
Kontrollera och hantera musrörelser mellan flera skärmar i Windows 10
Dual Display Mouse Manager låter dig kontrollera och konfigurera musrörelser mellan flera skärmar genom att sakta ner dess rörelser nära gränsen. Wind...
Mus WinMouse låter dig anpassa och förbättra muspekarens rörelse på Windows PC
WinMouse låter dig anpassa och förbättra muspekarens rörelse på Windows PC
Om du vill förbättra standardfunktionerna för din muspekare, använd freeware WinMouse. Det lägger till fler funktioner som hjälper dig att få ut det m...
Mus Mus vänsterklicka på knappen fungerar inte på Windows 10
Mus vänsterklicka på knappen fungerar inte på Windows 10
Om du använder en dedikerad mus med din bärbara dator eller stationära dator men musens vänsterklick-knapp fungerar inte på Windows 10/8/7 av någon an...