Andmebaasidega töötamine on väga lõbus, kuid mõnikord võib see olla keeruline, eriti juba olemasolevate andmetega tegelemisel.
Näiteks kui soovite muuta konkreetse välja tüüpi, võib see nõuda teenuse mahavõtmist, millel võib olla tõsiseid tagajärgi, eriti teenustes, mis töötlevad suurt hulka andmeid.
Õnneks saame selliste ülesannete lihtsustamiseks kasutada Elasticsearchi võimsaid funktsioone nagu Reindexing, sisestussõlmed, torujuhtmed ja protsessorid.
See õpetus näitab teile, kuidas muuta konkreetse indeksi väljatüüpi teiseks, kasutades Elasticsearch Ingesti sõlme. Selle lähenemisviisi kasutamine välistab teenuseid mõjutavad seisakuid, kuid suudab siiski välitüübi muutmise ülesandeid täita.
Sissejuhatus allaneelamissõlmedesse
Elasticsearchi sisestussõlm võimaldab dokumente enne nende indekseerimist eeltöödelda.
Elasticsearchi sõlm on Elasticsearchi konkreetne eksemplar; ühendatud sõlmed (rohkem kui üks) moodustavad ühe klastri.
Päringus saate vaadata töötavas klastris saadaolevaid sõlme:
GET / _sõlmed /Selle jaoks on käsk cURL:
curl -XGET “http: // localhost: 9200 / _nodes /”Selle käsu täitmine peaks teile pakkuma massiivset teavet sõlmede kohta, nagu allpool näidatud (kärbitud väljund):
"_nodes":
"kokku": 3,
"edukas": 3,
"nurjus": 0
,
"klastri_nimi": "22e0bee6ef91461d82d9b0f1b4b13b4a",
"sõlmed":
"gSlMjTKyTemoOX-EO7Em4w":
"nimi": "eksemplar-0000000003",
"transpordiaadress": "172.28.86.133: 19925 ",
"host": "172.28.86.133 ",
"ip": "172.28.86.133 ",
"versioon": "7.10.2 ",
"build_flavor": "vaikimisi",
"build_type": "dokkija",
"build_hash": "747e1cc71def077253878a59143c1f785afa92b9",
"total_indexing_buffer": 214748364,
"rollid": [
"andmed",
"data_cold",
"data_content",
"data_hot",
"data_warm",
"neelama",
"kapten",
"remote_cluster_client",
"Muundama"
],
"atribuudid":
"loogiline_saadatavuse_tsoon": "tsoon-0",
"serveri_nimi": "eksemplar-0000000003.22e0bee6ef91461d82d9b0f1b4b13b4a ",
"availability_zone": "us-west-1c",
"xpack.installitud ":" true ",
"eksemplari_konfiguratsioon": "aws.andmed.highio.i3 ",
"muundama.sõlm ":" tõene ",
"piirkond": "us-lääne-1"
,
"seaded":
"s3":
"klient":
"elastne-sisemine-22e0be":
"lõpp-punkt": "s3-us-west-1.amazonaws.com "
,
--------------------------------väljund kärbitud---------------------
Vaikimisi võimaldavad kõik Elasticsearchi sõlmed sisestamist ja suudavad allaneelamistoiminguid hallata. Kuid raskete sissevõtmisoperatsioonide jaoks saate luua ühe sõlme, mis on pühendatud ainult sissevõtmisele.
Pre_processiga toimetulekuks peame enne dokumentide indekseerimist määratlema torujuhtme, milles on eeltöötlejate seeria.
Eeltöötlejad on torujuhtme ümber keeratud käskude komplektid, mis täidetakse ükshaaval.
Järgmine on torujuhtme määratlemise üldine süntaks:
"description": "Teisenda mind",
"töötlejad": [
"teisenda":
"field": "id",
"tüüp": "täisarv"
]
Atribuudi kirjeldus ütleb, mida gaasijuhe peaks saavutama. Järgmine parameeter on eeltöötlejad, mis edastatakse loendina nende täitmise järjekorras.
Looge torujuhtme teisendamine
Torujuhtme loomiseks, mida kasutame tüübi teisendamiseks, kasutage PING-taotlust koos _ingest API lõpp-punktiga järgmiselt:
PUT _ingest / pipeline / convert_pipeline“Description”: “teisendab välja dayOfWeek välja pikaks täisarvust”,
"töötlejad": [
"teisenda":
"väli": "dayOfWeek",
"tüüp": "pikk"
]
CURLi jaoks kasutage käsku:
curl -XPUT "http: // localhost: 9200 / _ingest / pipeline / convert_pipeline" -H 'Content-Type: application / json' -d '"description": "teisendab välja dayOfWeek pikaks täisarvust", " protsessorid ": [" convert ": " field ":" dayOfWeek "," type ":" long "] 'Reindex ja teisenda Tüüp
Kui gaasijuhe on sisestussõlmes olemas, peame vaid kutsuma indekseerimise API ja edastama torujuhtme argumendina päringu keha järgmises vormis:
POST _reindex"Allikas":
"register": "kibana_näidis_andmete_lennud"
,
"dest":
"register": "kibana_sample_type_diff",
"pipeline": "convert_pipeline"
CURLi jaoks:
curl -XPOST "http: // localhost: 9200 / _reindex" -H 'Sisu-tüüp: application / json' -d '"source": "index": "kibana_sample_data_flights", "dest": "register ":" kibana_sample_type_diff "," pipeline ":" convert_pipeline " 'Kontrollige konversiooni
Torujuhtme õigesti rakendamise kontrollimiseks kasutage GET-päringut selle konkreetse välja toomiseks järgmiselt:
GET / kibana_sample_data_flights / _mapping / field / dayOfWeekGET / kibana_sample_type_diff / _mapping / field / dayOfWeek
See peaks tagastama andmed järgmiselt:
-----------------------ALGPÕHINE INDEKS---------------------------"kibana_sample_data_flights":
"kaardistused":
"dayOfWeek":
"full_name": "dayOfWeek",
"kaardistamine":
"dayOfWeek":
"tüüp": "täisarv"
-------------------------UUENDATUD ANDMED-------------------------------
"kibana_sample_type_diff":
"kaardistused":
"dayOfWeek":
"full_name": "dayOfWeek",
"kaardistamine":
"dayOfWeek":
"tüüp": "pikk"
Järeldus
Selles juhendis oleme uurinud, kuidas töötada koos Elasticsearch Ingesti sõlmedega dokumentide eeltöötlemiseks enne indekseerimist, teisendades seega välja ühelt tüübilt teisele.
Lisateabe saamiseks kaaluge dokumentatsiooni.
https: // www.elastne.co / guide / et / elasticsearch / reference / master / ingest.HTML