En idé bakom elastisk stack och elasticsearch

(10 apr 2020 )

En kort introduktion till Elasticsearch och ELK Stack. Varför vad och hur.

ELK https : //aasconsultants.files.wordpress.com/2019/03/elk.png

Historia

Elastisk NV är ett företag som grundades 2012 i Amsterdam, Shay Banon var grundaren av Elasticsearch. Hans första iteration hette Compass. Den andra var Elasticsearch (med Apache Lucene under huven). Han öppnade Elasticsearch, skapade IRC-kanalen #elasticsearch och väntade på att användare skulle visas. Svaret var imponerande. Användarna tog det naturligt och enkelt. Adoptionen gick genom taket, ett samhälle började bildas och folk märkte – nämligen Steven Schuurman, Uri Boness och Simon Willnauer. Tillsammans grundade de ett sökföretag.

Vad är Elastic Stack?

Elastic Stack kallas också ELK stack också. I grund och botten innehåller den tre öppen källkodsprojekt.

  1. Elastisk sökning – Sök- och analysmotor .
  2. Logstash – Pipeline för databehandling.
  3. Kibana – Instrumentpanel för att visualisera data.

Alla dessa tre har sin egen betydelse och genom att kamma dessa tre Får analys och analys av dina data.

Varför behövs det?

Enligt undersökningen genererar Facebook 4 Petabytes-data varje dag, dvs. 40 miljoner GB . Data, nu är det en värld av data. Så vi behöver ett system som analyserar våra data.

Vänta !! Vad betyder det? Analysera.

Det finns två termer att förstå.

  1. Analys – I analysdelen får du resultat från tidigare data eller befintliga data som du har.
  2. Analytics – När du vill förutsäga användarkrav vill du ha grafbaserad visualisering för bättre affärsklarhet och också vill förstå datamönster.

Så dessa två viktigaste verktyg för alla företag. Du kan uppnå dessa med din Data . Och med hjälp av dessa två kan du utveckla ditt företag och rensa affärsinsikter.

Nu är det hur? Att analysera dessa stora data på kortare tid är inte en lätt uppgift.

Utmaningar och lösningar.

Vad händer i mycket stora företag får du data från olika platser i olika format. Det kan vara JSON eller XML vad som helst. Så vi behöver en mekanism för att få hela data på ett ställe och även i ett format. Så för det använder vi Logstash .

Nu när vi får data måste vi ordna data i en systematisk ordning så att vi enkelt kan utvärdera sakerna. Vi vill också analysera data, i så fall, gå först igenom data mycket snabbt. För det har vi Elasticsearch. Elasticsearch är utvecklat i Java och släpps som öppen källkod enligt villkoren i Apache-licens .

Efter att ha slutfört detta behöver vi en visualiseringsplattform där vi kan visa vår dataanalys. Där kommer Kibana till bilden. Det var så hela Elastic stack fungerade. För bättre Affärsinsikter .

Process https://hackernoon.com/hn-images/1*Tvmj3XsqH4hJLvXnfm6sZQ.png

Ställa in Elasticsearch, Logstash och Kibana

Låt oss först ladda ner de tre programvarorna med öppen källkod från deras respektive länkar [ elasticsearch ], [ logstash ] och [ kibana ]. Packa upp filerna och lägg alla tre i projektmappen.

Låt oss komma igång.

Steg 1 – Ställ in Kibana och Elasticsearch i det lokala systemet. Vi kör Kibana med följande kommando i bin-mappen för Kibana.

bin\kibana

På samma sätt är Elasticsearch inställt så här:

bin\elasticsearch

Nu, i de två separata terminalerna, kan vi se att båda modulerna körs.För att kontrollera att tjänsterna går öppna localhost: 5621 för Kibana och localhost: 9600 för Elasticsearch.

Här är vi redo med inställningar för elastisk stack. Gå nu till localhost: 5621 och öppna dev-verktyg här i konsolen. Det är platsen där du kan skriva sökfrågor.

Kibana Console

Vi kommer att prata mer om Elasticsearch den här gången. Nu får vi se hur exakt Elasticsearch fungerar.

Elastisk sökning

Funktion av elastisk sökning

Innan någon operation måste vi indexera våra data. När de väl indexerats i Elasticsearch kan användare köra komplexa frågor mot sin data och använda aggregeringar för att hämta komplexa sammanfattningar av deras data. Elasticsearch lagrar data som JSON-dokument och använder Datastrucre som kallas en inverterat index , som är utformat för att möjliggöra mycket snabba fulltext-sökningar . Ett inverterat index listar alla unika ord som visas i alla dokument och identifierar alla dokument som varje ord förekommer i.

För en bättre förståelse ska vi dela upp Elasticsearch i flera ämnen.

  1. Hantera dokument
  2. Mappningar
  3. Analys
  4. Sökmetod
  5. Aggregering och filter

Den viktigaste aspekten av Elasticsearch är att förstå dess arkitektur.

Cluster

I Elasticserach lagrar vi våra data i noder, det kan finnas n antal noder i en maskin. Och varje nod är relaterad till klustret. Så Cluster är en uppsättning noder .

Dokument

Du lagrar dina data som dokument som är JSON-objekt. Så hur organiseras dessa data i klustret? Svaret är index .

I relationsdatabasens värld är dokument kan jämföras med en rad i en tabell.

Index

Elasticsearch-index är logiska partitioner av dokument och kan jämföras med en databas i världen av relationsdatabaser.

Typer

Varje index har en eller flera mappningstyper som används för att dela upp dokument i en logisk grupp. Det kan jämföras med en tabell i relationsdatabaserna.

Varje dokument lagras som ett index . Det index du kan säga är insamlingen av dokument. Det har till exempel liknande egenskaper, avdelningen kommer att ha A-index och anställda har B-index, dvs. de är logiskt relaterade.

Sharding

  1. Sharding är bara ett sätt att dela index i mindre bitar.
  2. Varje bit är känd som en skärva.
  3. Delning sker på indexnivå.

Skärva är precis som en index. För skalbarhet. Med skärning kan du lagra miljarder dokument inom ett index. Det finns också repliker men för nu räcker det för oss att starta och förstå Elasticsearch.

Så låt oss gå vidare mot byggnad och sökmotor.

1. Hantera dokument

Innan det får du pakethanteraren Elasticserach.

npm i elasticsearch

Steg -1- Länka din ansökan till Elasticsearch genom att följa.

Anslutning

Steg 2 – Skapa index för en t.ex. Vi skapar ett index som gov.

Skapa index

Steg 3 – Nu lägger vi till dokument i index gov och i index gov finns det en typ som kallas valkretsar .

Du kan relatera eftersom det finns en databas som heter gov och tabellen är valkretsar.

Lägga till dokument

2. Mappningar

Mapping är processen att definiera dokument och dess fält. Precis som att definiera tabellschema i RDBMS.

Steg-4 – Nu definierar vi mappningar för att indexera valkretsar.

Mappings

3. Analys

Textanalys är processen att konvertera ostrukturerad text , som huvuddelen av ett e-postmeddelande eller en produktbeskrivning, i ett strukturerat format som är optimerat för sökning.

Elasticsearch utför textanalys vid indexering eller sökning

text fält . Det har vi definierat i mappningar. Detta är nyckelfaktorn för sökmotorn.

Som standard använder Elasticsearch

standard analysator för all textanalys. standard -analysatorn ger dig out-of-the-box stöd för de flesta naturliga språk och användningsfall . Om du väljer att använda standard analysatorn som den är, behövs ingen ytterligare konfiguration. Du kan också skapa din egen anpassade analysator.

4. Sökmetod

Det finns olika typer av frågor som du kan tillämpa på Elasticsearch. Genom det får du resultat därefter. Här ger jag ett grundläggande exempel på en fråga.

Den enklaste frågan, som matchar alla dokument.

Sökfråga

Frågor

Sammansatta frågor omsluter andra sammansatta eller bladfrågor, antingen för att kombinera deras resultat och poäng, för att ändra deras beteende eller för att byta från fråga till filterkontext.

Standardfrågan för att kombinera flera blad- eller sammansatta frågeklausuler, som must, should, must\_not eller filter klausuler. must och should -satserna har sina poäng kombinerade.

Heltexten frågor gör det möjligt för dig att söka analyserade textfält , till exempel brödtexten i ett e-postmeddelande. Frågesträngen bearbetas med samma analysator som tillämpades på fältet under indexering. Det kommer att analysera din input. Om den angivna ingången inte är exakt men ändå får du ett resultat.

Att utföra fullständiga SQL-stil-kopplingar i ett distribuerat system som Elasticsearch är oöverkomligt dyrt. Istället erbjuder Elasticsearch två former av kopplingar som är utformade för att skala horisontellt.

1.

nested fråga

2.

has\_child och

has\_parent frågor

Den här gruppen innehåller frågor som inte passar in i de andra grupperna. Det har visat sig att dokument som har samma karaktär, fästa frågor också det finns många fler tack kolla in dess dokumentation .

Du kan använda frågor på termenivå för att hitta dokument baserat på precis e-värden i strukturerad data. Exempel på strukturerad data inkluderar datumintervall, IP-adresser, priser eller produkt-ID.

Till skillnad från fulltextfrågor gör frågor på termen nivå inte analysera söktermer. I stället matchar term-nivåfrågor de exakta termerna som lagras i ett fält. Det kommer att hitta exakt matchning av inmatning där som i fulltext först analyseras och sök så att det är stor skillnad mellan termnivå och fulltextfråga.

5. Aggregering och filter

I ett filterkontext svarar en frågeklausul på frågan ” Matchar detta dokument den här frågeställningen? Svaret är ett enkelt ja eller nej – inga poäng beräknas. Filterkontext används mest för att filtrera strukturerad data, t.ex.

  • Får detta timestamp faller inom intervallet 2015 till 2016?
  • Är status fältet inställt på "published"?

Ofta använda filter cachas automatiskt av Elasticsearch för att påskynda prestanda.

Filterkontext är i kraft varje gång en frågeklausul skickas till en filter -parameter, såsom filter eller must\_not parametrar i

bool fråga, parametern filter i

constant\_score -frågan eller

filter aggregering .

Med aggregering är mer som i RDBMS hittar du Genomsnitt, Sum och mycket datainsikter med komplexa frågor.

Sammanfattning

  1. Vad är Elastic Stack.
  2. Hur ELK fungerar.
  3. Vad är Elasticsearch och dess funktion.
  4. Några grundläggande frågor om det.

What Next !!

Eftersom det är ett stort ämne att täcka. men jag har försökt ge en kort introduktion om ELK och Elasticsearch. Därefter bygger vi vår egen sökmotor som Application med Elasticsearch där jag också kommer att täcka dess kodningsdel. Hur man behåller filstrukturen och andra saker.

Slutsats

Elastisk stack är en mycket viktig teknik att lära sig. Du kommer att tillämpa detta i alla dina projekt och ELK Stack används oftast som ett logganalysverktyg . Dess popularitet ligger i det faktum att det ger ett tillförlitligt och relativt skalbart sätt att aggregera data från flera källor. Det finns fortfarande många saker kvar men efter detta kan du börja med Elasticsearch. Jag rekommenderar att du går igenom med dess dokumentation . Om du har några frågor eller hittar något fel med innehållet, vänligen skriv en kommentar.

Tack 🙂