Elasticsearch datu bāze
Elasticsearch ir viena no populārākajām NoSQL datu bāzēm, kas tiek izmantota teksta datu glabāšanai un meklēšanai. Tas ir balstīts uz Lucene indeksēšanas tehnoloģiju un ļauj meklēt meklēšanu milisekundēs, pamatojoties uz datiem, kas tiek indeksēti.
Pamatojoties uz Elasticsearch vietni, šeit ir definīcija:
Elasticsearch ir atvērtā koda izplatīts, RESTful meklēšanas un analīzes dzinējs, kas spēj atrisināt aizvien vairāk lietojuma gadījumu.
Tie bija daži augsta līmeņa vārdi par Elasticsearch. Ļaujiet mums šeit detalizēti izprast jēdzienus.
- Izplatīts: Elasticsearch sadala tajā esošos datus vairākos mezglos un izmanto saimnieks-vergs algoritms iekšēji
- ATPŪTA: Elasticsearch atbalsta datu bāzes vaicājumus, izmantojot REST API. Tas nozīmē, ka mēs varam izmantot vienkāršus HTTP zvanus un izmantot tādas HTTP metodes kā GET, POST, PUT, DELETE utt. lai piekļūtu datiem.
- Meklēšanas un Analytics dzinējs: ES atbalsta ļoti analītiskus vaicājumus darbībai sistēmā, kas var sastāvēt no apkopotiem vaicājumiem un vairākiem veidiem, piemēram, strukturētiem, nestrukturētiem un ģeogrāfiskiem vaicājumiem.
- Horizontāli mērogojams: Šāda veida krāpšana attiecas uz vairāku mašīnu pievienošanu esošai kopai. Tas nozīmē, ka ES spēj pieņemt vairāk mezglu savā klasterī un nenodrošina dīkstāvi nepieciešamajiem sistēmas jauninājumiem. Apskatiet zemāk redzamo attēlu, lai saprastu mērogošanas jēdzienus:
Vertikāla un horizontāla skandēšana
Darba sākšana ar Elasticsearch Database
Lai sāktu lietot Elasticsearch, tas ir jāinstalē mašīnā. Lai to izdarītu, izlasiet Instalēt elastīgo meklēšanu Ubuntu.
Pārbaudiet, vai jums ir aktīva ElasticSearch instalācija, ja vēlaties izmēģināt piemērus, kurus mēs piedāvājam vēlāk nodarbībā.
Elasticsearch: jēdzieni un komponenti
Šajā sadaļā mēs redzēsim, kādi komponenti un jēdzieni atrodas Elasticsearch centrā. Izpratne par šiem jēdzieniem ir svarīga, lai saprastu, kā darbojas ES:
- Kopa: Klasteris ir serveru mašīnu (mezglu) kolekcija, kurā glabājas dati. Dati tiek sadalīti starp vairākiem mezgliem, lai tos varētu atkārtot, un ar ES serveri nenotiek viena kļūmes punkts (SPoF). Noklusējuma kopas nosaukums ir elasticsearch. Katrs klastera mezgls savienojas ar kopu ar URL un klastera nosaukumu, tāpēc ir svarīgi šo vārdu saglabāt atšķirīgu un skaidru.
- Mezgls: Mezglu mašīna ir daļa no servera un tiek saukta par vienu mašīnu. Tas glabā datus un nodrošina indeksēšanas un meklēšanas iespējas kopā ar citiem mezgliem klasterī.
Pateicoties horizontālās mērogošanas koncepcijai, mēs varam virtuāli pievienot bezgalīgu skaitu mezglu ES klasterī, lai piešķirtu tam daudz vairāk spēka un indeksēšanas iespēju.
- Indekss: Indekss ir dokumentu kolekcija ar nedaudz līdzīgām īpašībām. Indekss ir diezgan līdzīgs datu bāzei SQL balstītā vidē.
- Tips: Tips tiek izmantots, lai atdalītu datus starp vienu un to pašu indeksu. Piemēram, klientu datu bāzei / indeksam var būt vairāki veidi, piemēram, lietotājs, maksājuma veids utt.
Ņemiet vērā, ka tipi ir novecojuši no ES v6.0.0 uz priekšu. Kāpēc tas tika izdarīts, lasiet šeit.
- Dokuments: Dokuments ir zemākais vienības līmenis, kas atspoguļo datus. Iedomājieties to kā JSON objektu, kas satur jūsu datus. Indeksā ir iespējams indeksēt tik daudz dokumentu.
Meklēšanas veidi vietnē Elasticsearch
Elasticsearch ir pazīstama ar savām gandrīz reāllaika meklēšanas iespējām un elastību, ko tā nodrošina indeksējamo un meklēto datu tipam. Sāksim pētīt, kā izmantot meklēšanu ar dažāda veida datiem.
- Strukturēta meklēšana: Šis meklēšanas veids tiek veikts ar datiem, kuriem ir iepriekš noteikts formāts, piemēram, datumi, laiki un skaitļi. Ar iepriekš noteiktu formātu tiek nodrošināta elastība, veicot kopīgas darbības, piemēram, vērtību salīdzināšanu dažādos datumos. Interesanti, tekstuālos datus var strukturēt arī. Tas var notikt, ja laukam ir noteikts vērtību skaits. Piemēram, Datubāzu nosaukums var būt MySQL, MongoDB, Elasticsearch, Neo4J utt. Izmantojot strukturētu meklēšanu, atbilde uz mūsu vadītajiem jautājumiem ir jā vai nē.
- Pilna teksta meklēšana: Šis meklēšanas veids ir atkarīgs no diviem svarīgiem faktoriem, Atbilstība un Analīze. Izmantojot atbilstību, mēs nosakām, cik labi daži dati atbilst vaicājumam, nosakot rezultātu dokumentiem. Šo rezultātu nodrošina pati ES. Analīze attiecas uz teksta sadalīšanu normalizētos marķieros, lai izveidotu apgrieztu indeksu.
- Daudzfunkciju meklēšana: tā kā analītisko vaicājumu skaits arvien palielinās par ES saglabātajiem datiem, mēs parasti nesastopamies tikai ar vienkāršiem atbilstības vaicājumiem. Prasības ir pieaugušas, lai palaistu vaicājumus, kas aptver vairākus laukus un kuriem ir sakārtots sakārtots datu saraksts, kuru mums ir atgriezusi pati datu bāze. Tādējādi dati galalietotājam var būt daudz efektīvāki.
- Precizitātes atbilstība: Vaicājumi šodien ir daudz vairāk nekā tikai identificēšana, ja daži teksta dati satur citu virkni vai nav. Runa ir par attiecību noteikšanu starp datiem, lai tos varētu vērtēt un pielāgot kontekstam, kurā dati tiek saskaņoti. Piemēram:
- Bumba trāpīja Džonam
- Džons iesita bumbu
- Džons nopirka jaunu bumbu, kuru skāra Jaena dārzs
Atbilstoši vaicājumam, meklējot, tiks atrasti visi trīs dokumenti Bumba trāpīja. Tuvuma meklēšana var mums pateikt, cik tālu šie divi vārdi parādās vienā rindā vai rindkopā, kuras dēļ tie sakrita.
- Daļēja atbilstība: bieži vien mums ir jāveic daļēji saskaņoti vaicājumi. Daļēja atbilstība ļauj mums izpildīt vaicājumus, kas daļēji sakrīt. Lai to vizualizētu, apskatīsim līdzīgus vaicājumus, kuru pamatā ir SQL:
SQL vaicājumi: daļēja atbilstība
WHERE nosaukums LIKE "% john%"
UN nosauc LIKE "% red%"
UN nosauc LIKE "% garden%"Dažos gadījumos mums ir jāveic tikai daļēji maču vaicājumi, pat ja tos var uzskatīt par rupja spēka paņēmieniem.
Integrācija ar Kibana
Kad runa ir par analītikas dzinēju, mums parasti ir jāveic analīzes vaicājumi Business-Intelligence (BI) domēnā. Runājot par biznesa analītiķiem vai datu analītiķiem, nebūtu taisnīgi pieņemt, ka cilvēki zina programmēšanas valodu, kad vēlas vizualizēt ES klastera datus. Šo problēmu atrisina Kibana. Kibana piedāvā tik daudz priekšrocību BI, ka cilvēki faktiski var vizualizēt datus, izmantojot lielisku, pielāgojamu informācijas paneli, un datus skatīt neaktīvi. Apskatīsim dažus tā ieguvumus šeit.
Interaktīvās diagrammas
Kibana pamatā ir šādi interaktīvie diagrammas:
Kibana tiek atbalstīts ar dažāda veida diagrammām, piemēram, sektoru diagrammām, saules stariem, histogrammām un daudz ko citu, kas izmanto visas ES apkopošanas iespējas.
Kartēšanas atbalsts
Kibana atbalsta arī pilnīgu ģeogrāfisko apkopošanu, kas ļauj mums ģeogrāfiski kartēt savus datus. Vai tas nav forši?!
Iepriekš izveidotas apkopojumi un filtri
Izmantojot iepriekš izveidotās apkopojumus un filtrus, Kibana informācijas panelī ir iespējams burtiski sadeldēt, nomest un izpildīt ļoti optimizētus vaicājumus. Tikai ar dažiem klikšķiem ir iespējams izpildīt apkopotos vaicājumus un uzrādīt rezultātus interaktīvo diagrammu veidā.
Vienkārša informācijas paneļu izplatīšana
Izmantojot Kibana, ir arī ļoti viegli koplietot informācijas paneļus daudz plašākai auditorijai, neveicot nekādas izmaiņas panelī, izmantojot tikai informācijas paneļa režīmu. Informācijas paneļus mēs varam viegli ievietot mūsu iekšējā wiki vai tīmekļa lapās.
Rādīt attēlus, kas uzņemti Kibana produkta lapā.
Izmantojot Elasticsearch
Lai skatītu detalizētu informāciju un informāciju par kopu, izpildiet šādu komandu:
Tagad mēs varam mēģināt ievietot dažus datus ES, izmantojot šādu komandu:
Datu ievietošana
čokurošanās \-X POST 'http: // localhost: 9200 / linuxhint / hello / 1' \
-H 'Satura tips: application / json' \
-d '"name": "LinuxHint"' \
Lūk, ko mēs atgūsim ar šo komandu:
Mēģināsim iegūt datus tūlīt:
Datu iegūšana
čokurošanās -X GET 'http: // localhost: 9200 / linuxhint / hello / 1'Palaidot šo komandu, mēs iegūstam šādu izvadi:
Secinājums
Šajā nodarbībā mēs apskatījām, kā mēs varam sākt izmantot ElasticSearch, kas ir lielisks Analytics dzinējs un sniedz lielisku atbalstu gandrīz reāllaika brīvā teksta meklēšanai, kā arī.