Nápad za Elastic Stack a Elasticsearch

(10. dubna 2020) )

Krátký úvod do Elasticsearch a ELK Stack. Proč co a jak.

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

Historie

Elastický NV je společnost, která byla založena v roce 2012 v Amsterdamu, Shay Banon byl zakladatelem Elasticsearch. Jeho první iterace se jmenovala Compass. Druhým byl Elasticsearch (s Apache Lucene pod kapotou). Otevřel Elasticsearch, vytvořil IRC kanál #elasticsearch a čekal, až se uživatelé objeví. Odpověď byla působivá. Uživatelé to přijali přirozeně a snadno. Adopce prošla střechou, začala se formovat komunita a lidé si toho všimli – konkrétně Steven Schuurman, Uri Boness a Simon Willnauer. Společně založili vyhledávací společnost.

Co je Elastic Stack?

Elastic Stack je také známý jako ELK stack. V zásadě obsahuje tři open-source projekty.

  1. Elastic Search – vyhledávací a analytický modul .
  2. Logstash – potrubí zpracování dat.
  3. Kibana – Řídicí panel pro vizualizaci dat.

Všechny tyto tři mají svůj vlastní význam a česáním těchto tří vy Získám analýzu a analýzu vašich dat.

Proč je to nutné?

Podle průzkumu Facebook generuje každý den 4 petabajty, tj. 40 milionů GB . Data, nyní je to svět dat. Potřebujeme tedy systém, který analyzuje naše data.

Počkejte !! Co to znamená? Analyzovat.

Rozumět lze dvěma pojmům.

  1. Analýza – V analytické části získáte výsledky z minulých dat nebo ze stávajících dat, která máte.
  2. Analytics – Pokud chcete předvídat požadavky uživatelů, chcete vizualizaci založenou na grafech pro lepší přehlednost podnikání a také chcete porozumět datovým vzorům.

Takže tyto dva nejdůležitější nástroje pro jakékoli podnikání. Toho můžete dosáhnout svými daty . A pomocí těchto dvou můžete rozšířit své podnikání a vyčistit obchodní statistiky.

Nyní je to jak? Protože analýza těchto velkých dat za kratší dobu není snadný úkol.

Výzvy a řešení.

Co se stane v velmi velké společnosti získáte data z různých míst v různých formátech. Může to být cokoli JSON nebo XML. Potřebujeme tedy jeden mechanismus, abychom získali všechna data na jednom místě a také v jednom formátu. K tomu tedy používáme Logstash .

Nyní, když získáváme data, musíme data uspořádat systematický řád, abychom mohli věci velmi snadno vyhodnotit. Také chceme analyzovat data, v takovém případě nejprve projděte daty velmi rychle. K tomu máme Elasticsearch. Elasticsearch je vyvíjen v Javě a je vydáván jako open-source za podmínek licence Apache .

Nyní po dokončení potřebujeme vizualizační platformu, kde můžeme ukázat naši analýzu dat. Na scénu přijde Kibana . Tak fungoval celý Elastic stack. Pro lepší obchodní statistiky .

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

Nastavení Elasticsearch, Logstash a Kibana

Nejprve si stáhněte tři open-source software z příslušných odkazů [ elasticsearch ], [ logstash ] a [ kibana ]. Rozbalte soubory a všechny tři vložte do složky projektu.

Začněme.

Krok 1 – Nastavte Kibanu a Elasticsearch v místním systému. Kibanu spustíme následujícím příkazem ve složce bin v Kibaně.

bin\kibana

Podobně je Elasticsearch nastaven takto:

bin\elasticsearch

Nyní na dvou samostatných terminálech vidíme běžící oba moduly.Chcete-li zkontrolovat, zda jsou služby spuštěny, otevřete localhost: 5621 pro Kibanu a localhost: 9600 pro Elasticsearch.

Tady jsme připraveni na nastavení elastického zásobníku. Nyní přejděte na localhost: 5621 a otevřete zde nástroje pro vývojáře v konzole. Je to místo, kde můžete psát dotazy Elasticsearch.

Kibana Console

Protože si tentokrát povíme více o Elasticsearch. Nyní uvidíme, jak přesně Elasticsearch funguje.

Elastické vyhledávání

Práce s elastickým vyhledáváním

Před jakoukoli operací musíme naše data indexovat. Po indexování v Elasticsearch mohou uživatelé spouštět složité dotazy na svá data a pomocí agregací načítat složité souhrny svých dat. Elasticsearch ukládá data jako dokumenty JSON a používá Datastrucre jako invertovaný index , který je navržen tak, aby umožňoval velmi rychlé fulltextové vyhledávání . Invertovaný rejstřík obsahuje seznam všech jedinečných slov, která se objevují v libovolných dokumentech, a identifikuje všechny dokumenty, v nichž se každé slovo vyskytuje.

Pro lepší pochopení budeme rozdělte Elasticsearch na několik témat.

  1. Správa dokumentů
  2. Mapování
  3. Analýza
  4. Metodika vyhledávání
  5. Agregace a filtry

Nejdůležitějším aspektem Elasticsearch je pochopení jeho architektury.

Klastr

V Elasticserach ukládáme naše data do uzlů, ve stroji může být n počet uzlů. A každý uzel souvisí s klastrem. Takže cluster je sada uzlů .

Dokumenty

Data ukládáte jako dokumenty , které jsou objekty JSON. Jak jsou tedy tato data uspořádána v klastru? Odpověď je indexy .

Ve světě relačních databází dokumenty lze porovnat s řádkem v tabulce.

Rejstřík

Indexy Elasticsearch jsou logické oddíly dokumentů a lze přirovnat k databázi ve světě relačních databází.

Typy

Každý index má jeden nebo více typů mapování, které se používají k rozdělení dokumentů do logické skupiny. Může být porovnán s tabulkou ve světě relačních databází.

Každý dokument je uložen jako rejstřík . Rejstřík, o kterém můžete říci, je sbírka dokumentů. To má například podobné charakteristiky, ministerstvo bude mít index A a zaměstnanci index B, tj. Budou logicky příbuzní.

Sharding

  1. Sharding je jen způsob, jak rozdělit index na menší kousky.
  2. Každý kousek se označuje jako střep.
  3. Sharding se provádí na úrovni indexu.

Střep je jako index. Pro škálovatelnost. Díky horizontálnímu dělení můžete do jednoho indexu uložit miliardy dokumentů. Existují také repliky, ale prozatím nám stačí začít a rozumět Elasticsearchu.

Pojďme tedy dále k budování a vyhledávacímu modulu.

1. Správa dokumentů

Před tím si pořiďte správce balíčků Elasticserach.

npm i elasticsearch

Krok -1- Propojte svou aplikaci s Elasticsearch následujícím způsobem.

Připojení

Krok 2 – Vytvoření rejstříku např. Vytvoříme rejstřík jako gov.

Vytvořit index

Krok 3 – Nyní přidáme dokumenty do indexu gov a v indexu gov existuje typ s názvem volební obvody .

Můžete se vztahovat, protože existuje databáze s názvem gov a tabulka obsahuje volební obvody.

Přidávání dokumentů

2. Mapování

Mapování je proces definování dokumentu a jeho polí. Stejně jako definování schématu tabulky v RDBMS.

Krok 4 – Nyní definujeme mapování pro indexování volebních obvodů typu gov.

Mapování

3. Analýza

Textová analýza je proces převodu nestrukturovaného textu jako text e-mailu nebo popisu produktu do strukturovaného formátu, který je optimalizován pro vyhledávání.

Elasticsearch provádí textovou analýzu při indexování nebo vyhledávání

text pole . To jsme definovali v mapováních. Toto je klíčový faktor pro vyhledávač.

Elasticsearch ve výchozím nastavení používá

standard analyzátor pro veškerou textovou analýzu. Analyzátor standard vám poskytuje okamžitou podporu většiny přirozených jazyků a případů použití . Pokud se rozhodnete použít analyzátor standard tak, jak je, není nutná žádná další konfigurace. Můžete si také vytvořit vlastní analyzátor.

4. Metodika vyhledávání

Elasticsearch nabízí různé typy dotazů. Tím získáte odpovídajícím způsobem výsledky. Zde uvedu základní příklad dotazu.

Nejjednodušší dotaz, který odpovídá všem dokumentům.

Vyhledávací dotaz

Dotazy

Složené dotazy zalamují další složené nebo listové dotazy, a to buď pro kombinování jejich výsledků a skóre, pro změnu jejich chování, nebo pro přepnutí z kontextu dotazu na kontext filtru.

Výchozí dotaz pro kombinaci více listových nebo složených klauzulí dotazu, jako must, should, must\_not nebo filter doložky. Klauzule must a should mají své skóre kombinované.

Plný text dotazy umožňují vyhledávat analyzovaná textová pole , například tělo e-mailu. Řetězec dotazu je zpracován pomocí stejného analyzátoru, který byl použit pro pole během indexování. Bude analyzovat váš vstup. Pokud zadaný vstup není přesný, ale přesto získáte výsledek.

Provádění úplných spojení ve stylu SQL v distribuovaném systému, jako je Elasticsearch, je neúnosně nákladné. Místo toho nabízí Elasticsearch dvě formy spojení, které jsou navrženy tak, aby byly horizontálně škálovatelné.

1.

nested dotaz

2.

has\_child a

has\_parent dotazy

Tato skupina obsahuje dotazy, které se nehodí do ostatních skupin. Zjistilo se, že dokumenty podobné povahy, připnuté dotazy, existuje i mnohem více, prosím podívejte se na jeho dokumentaci .

Můžete použít dotazy na úrovni termínu k vyhledání dokumentů založených na precis Hodnoty ve strukturovaných datech. Příklady strukturovaných dat zahrnují rozsahy dat, adresy IP, ceny nebo ID produktů.

Na rozdíl od fulltextových dotazů ano neanalyzovat hledané výrazy. Místo toho se dotazy na úrovni termínu shodují s přesnými termíny uloženými v poli. Najde přesnou shodu vstupu, kde stejně jako v prvním textu bude analyzována a poté vyhledána, takže je velký rozdíl mezi termínovým a fulltextovým dotazem.

5. Agregace a filtry

V kontextu filtru odpovídá klauzule dotazu na otázku „ Odpovídá tento dokument této klauzuli dotazu? Odpověď je jednoduchá Ano nebo Ne – nejsou počítána žádná skóre. Kontext filtru se většinou používá k filtrování strukturovaných dat, např.

  • Spadá to timestamp do rozsahu 2015 do roku 2016?
  • Je status pole nastaveno na "published"?

Elasticsearch často používané filtry automaticky ukládá do mezipaměti, aby se urychlil výkon.

Kontext filtru je platný vždy, když je klauzule dotazu předána filter parametr, například filter nebo must\_not parametry v

bool dotaz, parametr filter v dotazu

constant\_score nebo agregace

filter .

Agregace je podobnější jako v RDBMS, kde najdete průměr, součet a mnoho statistik o datech pomocí složitých dotazů.

Shrnutí

  1. Co je Elastic Stack.
  2. Jak funguje ELK.
  3. Co je Elasticsearch a jak funguje.
  4. Některé základní dotazy.

Co dál !!

Jelikož je to obrovský předmět, který je třeba pokrýt. ale pokusil jsem se krátce představit ELK a Elasticsearch. Dále vytvoříme vlastní vyhledávací modul, jako je aplikace, používající Elasticsearch, kde také pokryji jeho kódovací část. Jak udržovat strukturu souborů a další věci.

Závěr

Elastic Stack je velmi důležitá technologie, kterou se musíte naučit. Použijete to v kterémkoli ze svých projektů a ELK Stack se nejčastěji používá jako nástroj pro analýzu protokolů . Jeho popularita spočívá ve skutečnosti, že poskytuje spolehlivý a relativně škálovatelný způsob agregace dat z více zdrojů, stále existuje mnoho věcí, ale poté můžete začít s Elasticsearch. Doporučuji projít si dokumentaci . Pokud máte jakékoli dotazy nebo zjistíte něco špatného na obsahu, zanechte prosím komentář.

Děkujeme 🙂