Kas yra Elasticsearch agregacija?

Kas Yra Elasticsearch Agregacija



Duomenų kasdien surenkama labai daug, o didelių duomenų tvarkymas yra svarbiausias Elasticsearch variklio naudojimo atvejis. Duomenys yra saugomi analizės duomenų bazėje realiu laiku ir vartotojui leidžiama išgauti duomenis, kad iš jų rastų naudingų žinių naudojant užklausas. Vartotojas gali taikyti užklausas, kad surastų duomenis iš kelių indeksų ir parodytų juos viename segmente iš reliacinės duomenų bazės.

Šiame vadove Elasticsearch agregacijos bus paaiškintos pavyzdžiais, naudojant skirtingus agregatus.







Kas yra Elasticsearch agregacija?

Elasticsearch agregavimas yra laukų sujungimo arba grupavimo procesas, siekiant gauti informaciją iš reliacinės duomenų bazės. Elasticsearch agregacija gali būti laikoma GRUPĖ PAGAL SĄLYGĄ arba AGREGATAS () funkcija SQL kalba.



Kaip naudoti Elasticsearch agregaciją?

Norėdami naudoti Elasticsearch agregaciją, vartotojas turi turėti pagrindinį supratimą apie savo duomenų bazę. Panagrinėkime sintaksę ir jos praktinį įgyvendinimą:



Sintaksė





Norėdami rasti duomenų iš duomenų bazės, Elasticsearch variklio agregacijos sintaksė, kaip nurodyta toliau:

'aggs' : {
'agregacijos_pavadinimas' : {
'agregacijos_tipas' : {
'laukas' : 'document_field_name'
}


Aukščiau pateikti fragmentai:



    • Jis naudoja ' aggs “ raktinis žodis, paaiškinantis agregavimo naudojimą užklausoje.
    • The agregacijos_pavadinimas nustato vartotojas pagal reikiamą informaciją.
    • Po to, agregacijos_tipas naudojamas duomenims gauti.
    • Paskutinėje eilutėje naudojamas lauke raktinis žodis, po kurio nurodomas atributo pavadinimas iš dokumento.

1 pavyzdys: „Kibana“ pavyzdinių duomenų apibendrinimas

Šioje skiltyje agregavimas paaiškinamas naudojant pavyzdį, naudojant pavyzdinius duomenis iš Kibana, pirmiausia prie jo prisijungus. Po to tiesiog eikite į „ Kūrėjo įrankiai “ ieškodami jo paieškos juostoje ir spustelėdami:


Gaukite duomenis iš pavyzdinių duomenų

Tiesiog naudokite šią komandą, kad gautumėte duomenis iš „ kibana_sample_data_logs “ indeksą „Kūrėjo įrankių“ pulte:

GAUTI / kibana_sample_data_logs / _Paieška



Išvestis rodo, kad duomenys buvo gauti iš ' kibana_sample_data_logs ' indeksas.

Šis kodas naudoja a GAUTI prašymas dėl ' kibana_sample_data_log “, jei norite ieškoti iš jo naudodami value_count agregaciją „ klientas “ laukas:

GAUTI / kibana_sample_data_logs / _Paieška
{ 'dydis' : 0 ,
'aggs' : {
'ip_count' : {
'value_count' : {
'laukas' : 'klientas'
}
}
}
}



Aukščiau pateiktoje ekrano kopijoje rodomas apibendrinimas klientas lauką su verte 14074 .

Svarbūs agregatai

Toliau pateikiami keli svarbūs agregatai, naudojami norint efektyviai rasti duomenis iš duomenų bazės:

Šie pavyzdžiai paaiškina pirmiau minėtus agregavimus naudojant GAUTI prašymas iš „ kibana_sample_data_ecommerce ' indeksas:

Kardinalumo agregacija

Šis kodas naudoja ' kardinalumas 'agregacija' sku “ lauką iš elektroninės prekybos duomenų. Vykdant šį kodą bus apibendrinta viena vertė, kad būtų gauti unikalūs SKU iš Elasticsearch duomenų bazės:

GAUTI / kibana_sample_data_ecommerce / _Paieška
{
'dydis' : 0 ,
'aggs' : {
'unikalus_skus' : {
'kardinalumas' : {
'laukas' : 'sku'
}
}
}
}



Jame rodoma kardinalumas apibendrinimas nustatant 7186 vertės iš indekso.

Statistikos apibendrinimas

Kitas svarbus agregatas yra „ statistika “ apibendrinimas, kuris naudojamas norint gauti “ skaičiuoti “, „ min “, „ maks “, „ vid “ ir „ suma “ statistika iš „ bendras_kiekis “ laukas:

GAUTI / kibana_sample_data_ecommerce / _Paieška
{
'dydis' : 0 ,
'aggs' : {
'kiekybės_statistika' : {
'statistika' : {
'laukas' : 'bendras_kiekis'
}
}
}
}



Aukščiau pateiktoje ekrano kopijoje rodoma statistika išvestyje iš „ bendras_kiekis “ lauką.

Filtrų agregavimas

Filtrų apibendrinimas naudojamas duomenims filtruoti pagal terminą ar frazę iš duomenų bazės, nes tai yra šiame kode:

GAUTI / kibana_sample_data_ecommerce / _Paieška
{ 'dydis' : 0 ,
'aggs' : {
'filter_agregation' : {
'filtras' : {
'terminas' : {
'Vartotojas' : 'edis' } } ,
'aggs' : {
'vid. kaina' : {
'vid.' : {
'laukas' : 'produktai.kaina' } }
} } } }



Vykdant kodą duomenys bus filtruojami pagal „ Edis “ vartotoją ir rodo vidutinę įsigytų prekių kainą. Aukščiau pateikta ekrano kopija rodo, kad Vartotojas rado 100 kartų iš duomenų ir vertė vid _ kaina agregacija.

Terminų apibendrinimas

Apibendrinimo terminas sukuria segmentą ir išsaugo duomenis iš lauko jame, o toliau pateiktas kodas naudoja „ Vartotojas “ lauką, kad išsaugotumėte jo duomenis segmente:

GAUTI / kibana_sample_data_ecommerce / _Paieška
{
'dydis' : 0 ,
'aggs' : {
'Termin_Aggregation' : {
'sąlygos' : {
'laukas' : 'Vartotojas'
}
}
}
}



Toliau pateiktoje ekrano kopijoje rodoma, kad terminas agregavimas sukūrė segmentus kiekvienam vartotojui ir jų dokumentų skaičiui.

Tai viskas apie Elasticsearch agregaciją ir skirtingą svarbią agregaciją.

Išvada

„Elasticsearch“ agregavimas naudojamas duomenims iš apibendrintų dokumentų gauti ir šie dokumentai išgaunami iš konkretaus lauko. Yra keletas svarbių agregatų, kurie naudojami norint gauti naudingų įžvalgų iš indeksų. Šiame vadove paaiškintas Elasticsearch agregavimas ir parodytas Elasticsearch agregacijos naudojimo procesas.