Unidea dietro Elastic Stack ed Elasticsearch

(10 aprile 2020 )

Una breve introduzione a Elasticsearch e ELK Stack. Perché cosa e come.

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

Storia

Elastico NV è una società fondata nel 2012 ad Amsterdam, Shay Banon è stato il fondatore di Elasticsearch. La sua prima iterazione si chiamava Compass. Il secondo era Elasticsearch (con Apache Lucene sotto il cofano). Ha aperto Elasticsearch, ha creato il canale IRC #elasticsearch e ha aspettato la comparsa degli utenti. La risposta è stata impressionante. Gli utenti lo hanno adottato in modo naturale e semplice. Ladozione è andata alle stelle, una comunità ha iniziato a formarsi e la gente lha notato, ovvero Steven Schuurman, Uri Boness e Simon Willnauer. Insieme, hanno fondato una società di ricerca.

Cosè Elastic Stack?

Elastic Stack è anche noto come ELK stack. Fondamentalmente contiene tre progetti open source.

  1. Elastic Search – Motore di ricerca e analisi .
  2. Logstash – Pipeline di elaborazione dei dati.
  3. Kibana – Dashboard per visualizzare i dati.

Tutti e tre hanno il loro significato e combinando questi tre tu Otterrai analisi e analisi dei tuoi dati.

Perché è necessario?

Secondo il sondaggio, Facebook genera 4 petabyte di dati ogni giorno, ad esempio 40 milioni di GB . I dati, ora è un mondo di dati. Quindi abbiamo bisogno di un sistema che analizzi i nostri dati.

Aspetta !! Cosa significa? Analizza.

Ci sono due termini da capire.

  1. Analisi – Nella parte dellanalisi, otterrai risultati dai dati passati o dai dati esistenti che hai.
  2. Analytics – Quando si desidera prevedere le esigenze degli utenti, si desidera una visualizzazione basata su grafici per una migliore chiarezza aziendale e si desidera anche comprendere i modelli di dati.

Quindi questi due strumenti più importanti per qualsiasi attività commerciale. Puoi ottenere questi risultati dai tuoi Dati . E con laiuto di questi due, puoi far crescere la tua attività e ottenere informazioni chiare sullattività.

Ora, come? Perché analizzare questi dati di grandi dimensioni in meno tempo non è un compito facile.

Sfide e soluzioni.

Cosa succede in aziende molto grandi si ottengono dati da luoghi diversi in formati diversi. Può essere JSON o XML qualunque. Quindi abbiamo bisogno di un meccanismo per ottenere interi dati in un unico posto e anche in un formato. Quindi, per questo, utilizziamo Logstash .

Ora, quando otteniamo i dati, dobbiamo disporre i dati in un ordine sistematico in modo da poter valutare le cose molto facilmente. Inoltre, vogliamo analizzare i dati, in tal caso, per prima cosa, esaminarli molto rapidamente. Per questo abbiamo Elasticsearch. Elasticsearch è sviluppato in Java ed è rilasciato come open source secondo i termini della Licenza Apache .

Ora, dopo aver completato questo, abbiamo bisogno di una piattaforma di visualizzazione in cui possiamo mostrare la nostra analisi dei dati. Kibana entra in scena. È così che ha funzionato lintero stack Elastic. Per approfondimenti aziendali .

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

Configurazione di Elasticsearch, Logstash e Kibana

Per prima cosa scarichiamo i tre software open source dai rispettivi link [ elasticsearch ], [ logstash ] e [ kibana ]. Decomprimere i file e inserirli tutti e tre nella cartella del progetto.

Iniziamo.

Passaggio 1 – Configura Kibana ed Elasticsearch sul sistema locale. Eseguiamo Kibana con il seguente comando nella cartella bin di Kibana.

bin\kibana

Allo stesso modo, Elasticsearch è impostato in questo modo:

bin\elasticsearch

Ora, nei due terminali separati, possiamo vedere entrambi i moduli in esecuzione.Per verificare che i servizi siano in esecuzione, aprire localhost: 5621 per Kibana e localhost: 9600 per Elasticsearch.

Qui siamo pronti con limpostazione per lo stack elastico. Ora vai a localhost: 5621 e apri gli strumenti di sviluppo qui nella console. È il luogo in cui puoi scrivere query Elasticsearch.

Kibana Console

Questa volta parleremo di più su Elasticsearch. Ora vedremo come funziona esattamente Elasticsearch.

Ricerca elastica

Working Of Elastic Search

Prima di qualsiasi operazione, dobbiamo indicizzare i nostri dati. Una volta indicizzati in Elasticsearch, gli utenti possono eseguire query complesse sui propri dati e utilizzare aggregazioni per recuperare riepiloghi complessi dei propri dati. Elasticsearch memorizza i dati come documenti JSON e utilizza Datastrucre come chiamato indice invertito , progettato per consentire ricerche full-text molto veloci . Un indice invertito elenca ogni parola univoca che appare in qualsiasi documento e identifica tutti i documenti in cui ricorre ciascuna parola.

Per una migliore comprensione, faremo dividere Elasticsearch in diversi argomenti.

  1. Gestione dei documenti
  2. Mappature
  3. Analisi
  4. Metodologia di ricerca
  5. Aggregazione e filtri

Laspetto più importante di Elasticsearch è comprenderne larchitettura.

Cluster

In Elasticserach, archiviamo i nostri dati in nodi, può esserci n numero di nodi in una macchina. E ogni nodo è correlato al cluster. Quindi il cluster è un insieme di nodi .

Documenti

Memorizzi i tuoi dati come documenti che sono oggetti JSON. Allora come sono organizzati questi dati nel cluster? La risposta è indices .

Nel mondo dei database relazionali, i documenti possono essere confrontati con una riga in una tabella.

Indice

Gli indici Elasticsearch sono partizioni logiche di documenti e può essere paragonato a un database nel mondo dei database relazionali.

Tipi

Ogni indice ha uno o più tipi di mappatura che vengono utilizzati per dividere i documenti in un gruppo logico. può essere paragonato a una tabella nel mondo dei database relazionali.

Ogni documento viene archiviato come indice . Lindice si può dire è la raccolta di documenti. Questo ha caratteristiche simili, ad esempio, il Dipartimento avrà un indice A e i dipendenti avranno un indice B, ovvero sono logicamente correlati.

Sharding

  1. Sharding è solo un modo per dividere lindice in parti più piccole.
  2. Ogni pezzo è noto come frammento.
  3. Il frammento viene eseguito a livello di indice.

Shard è proprio come un indice. Per la scalabilità. Con lo sharding puoi archiviare miliardi di documenti in un indice. Esistono anche repliche, ma per ora è abbastanza per noi iniziare e capire Elasticsearch.

Quindi procediamo ulteriormente verso la creazione e il motore di ricerca.

1. Gestione dei documenti

Prima di questo, scarica il gestore di pacchetti Elasticserach.

npm i elasticsearch

Passaggio -1- Collega la tua applicazione a Elasticsearch seguendo.

Connessione

Passaggio 2: creazione di un indice ad es. Creiamo un indice come gov.

Crea indice

Passaggio 3 – Ora aggiungeremo documenti a index gov e in index gov cè un tipo chiamato collegi elettorali .

Puoi capire perché esiste un database chiamato gov e la tabella è collegi.

Aggiunta di documenti

2. Mappature

La mappatura è il processo di definizione del documento e dei suoi campi. Proprio come definire lo schema della tabella in RDBMS.

Passaggio 4 – Ora definiremo le mappature per indicizzare i componenti di tipo gov.

Mappature

3. Analisi

Analisi del testo è il processo di conversione di testo non strutturato , come il corpo di une-mail o di una descrizione di prodotto, in un formato strutturato ottimizzato per la ricerca.

Elasticsearch esegue lanalisi del testo durante lindicizzazione o la ricerca

text campi . Che abbiamo definito nelle mappature. Questo è il fattore chiave per il motore di ricerca.

Per impostazione predefinita, Elasticsearch utilizza lanalizzatore

standard per tutte le analisi del testo. Lanalizzatore standard offre un supporto pronto alluso per la maggior parte delle lingue naturali e dei casi duso . Se scegli di utilizzare lanalizzatore standard così comè, non sono necessarie ulteriori configurazioni. Puoi anche creare il tuo analizzatore personalizzato.

4. Metodologia di ricerca

Esistono diversi tipi di query che puoi applicare a Elasticsearch. In questo modo, otterrai risultati di conseguenza. Di seguito fornirò un esempio di base di una query.

La query più semplice, che corrisponde a tutti i documenti.

Query di ricerca

Query

Le query composte racchiudono altre query composte o foglia, per combinare i risultati e i punteggi, per modificare il loro comportamento o per passare dalla query al contesto del filtro.

La query predefinita per combinare più clausole di query foglia o composte, come must, should, must\_not o filter. Le clausole must e should hanno i loro punteggi combinati.

The full-text le query consentono di cercare campi di testo analizzati come il corpo di unemail. La stringa di query viene elaborata utilizzando lo stesso analizzatore applicato al campo durante lindicizzazione. Analizzerà il tuo input. Se linput non è esatto ma comunque, otterrai un risultato.

Lesecuzione di join completi in stile SQL in un sistema distribuito come Elasticsearch è proibitivamente costoso. Elasticsearch offre invece due forme di join progettate per essere ridimensionate orizzontalmente.

1.

nested query

2.

has\_child e

has\_parent query

Questo gruppo contiene query che non rientrano negli altri gruppi, è stato riscontrato che documenti che sono di natura simile, query bloccate anche ce ne sono molte altre per favore consulta la sua documentazione .

Puoi utilizzare query a livello di termine per trovare documenti basati su precis e valori nei dati strutturati. Esempi di dati strutturati includono intervalli di date, indirizzi IP, prezzi o ID prodotto.

A differenza delle query full-text, le query a livello di termine non analizzare i termini di ricerca. Al contrario, le query a livello di termine corrispondono ai termini esatti memorizzati in un campo. Troverà la corrispondenza esatta dellinput dove, come nel testo completo per la prima volta, verrà analizzato quindi la ricerca in modo che sia grande differenza tra query a livello di termine e full-text.

5. Aggregazione e filtri

In un contesto di filtro, una clausola di query risponde alla domanda “ Questo documento corrisponde a questa clausola di query? La risposta è un semplice Sì o No: non viene calcolato alcun punteggio. Il contesto del filtro viene utilizzato principalmente per filtrare i dati strutturati, ad esempio

  • Questo timestamp rientra nellintervallo 2015 al 2016?
  • Il campo status è impostato su "published"?

I filtri utilizzati di frequente verranno automaticamente memorizzati nella cache da Elasticsearch, per accelerare le prestazioni.

Il contesto del filtro è attivo ogni volta che una clausola di query viene passata a un filter, come i parametri filter o must\_not in

bool query, il parametro filter nella query

constant\_score o laggregazione

filter .

Con laggregazione è più simile a come in RDBMS troverai Avg, Sum e molte informazioni sui dati utilizzando query complesse.

Riepilogo

  1. Che cosè Elastic Stack.
  2. Come funziona ELK.
  3. Che cosè Elasticsearch e il suo funzionamento.
  4. Alcune domande di base su di esso.

What Next !!

Dato che è un argomento enorme da trattare. ma ho provato a dare qualche breve introduzione su ELK ed Elasticsearch. Successivamente, costruiremo il nostro motore di ricerca come lapplicazione utilizzando Elasticsearch, dove tratterò anche la sua parte di codifica. Come mantenere la struttura dei file e altre cose.

Conclusione

Elastic Stack è una tecnologia molto importante da imparare. Lo applicherai a tutti i tuoi progetti e lo ELK Stack è più comunemente utilizzato come strumento di analisi dei log . La sua popolarità sta nel fatto che fornisce un modo affidabile e relativamente scalabile per aggregare i dati da più fonti, ci sono ancora molte cose rimaste ma dopo questo, puoi iniziare con Elasticsearch. Ti consiglio di consultare la sua documentazione . Se hai domande o trovi qualcosa di sbagliato nel contenuto, lascia un commento.

Grazie 🙂