SlideShare a Scribd company logo
Elasticsearch
nie tylko dla Wielkodanowców
Łukasz Kuczyński
Ja
● Łukasz i inne
● developer
● autofirma
● elastycznie
● gram w nogę
Elasticsearch nie tylko dla Wielkodanowców
Agenda
● motywacja
● pierwsze uruchomienie
● troszkę teorii
● demo 1 : tekst
● demo 2 : agregacje
● pytania i odpowiedzi
Motywacja
● Po co nam dane
– Gdzie są
– Kto ich szuka
– Dane a informacje
● Co gdy brak informacji
– Support team jest męczony
– Leczymy skutki
– Nie widzisz
Nasz „krajobraz”
Agenda
● motywacja
● pierwsze uruchomienie
● troszkę teorii
● demo 1 : tekst
● demo 2 : agregacje
● pytania i odpowiedzi
Opcje
● On premises – hostuj sobie sam
– instalki (Winda i Linuch)
– Docker-owy obrazek
● Hostingi
– AWS
– Bonsai.io
– usługa albo Linuxbox
zostań kompozytorem
minidemo: Pierwsze uruchomienie
● cel
– pokazać że skomplikowany silnik wyszukiwania da się uruchomić na Twoim
kompie
– pokazać że to żyje
● kamenie milowe
– Linux + Docker
– Health
– Any REST
● curl
● Kibana devtools
Agenda
● motywacja
● pierwsze uruchomienie
● troszkę teorii
● demo 1 : tekst
● demo 2 : agregacje
● pytania i odpowiedzi
Pokaż kotku co masz w środku
● Elasticsearch to
– Search engine
– Biblioteka Lucene
– RESTowe narzędzie
● Pojęcia
– index > type > document
– cluster > node > shard
– replica
Podstawowe operacje
● Cel
– Zindeksujemy dokument i zobaczymy co automatycznie stworzył
nam silnik ES
● Kamienie milowe:
– Otwieram Kibana (K z ELK)
– Tworzę indeks
– Wrzucam dokument
– Indeks ma mapowanie
– Szukam i znajduję
ES to .. bogactwo API
● REST
● Language-specific
– Java
● official ES library
– Spring
● SpringData Repository
– Python
● pokażmy kod
w Pythonie jest łatwo
Elasticsearch to „baza”
● Nie zawsze jako podstawa
– Świetny cache
– Aplikacje zorientowane na search
● Security
– X-Pack to dodatek
● Transakcje
– Wersjonowanie dokumentów
Agenda
● motywacja
● pierwsze uruchomienie
● troszkę teorii
● demo 1 : tekst
● demo 2 : agregacje
● pytania i odpowiedzi
Demo #1 : twitter
● Cel: o czym piszą fani Java
● Zindeksowana historia
– pokaz
● Live: L z ELK
– konfiguracja
– output
● konsola
● ES
● Query to nie Select
– Search Lite vs DSL
Demo #1 : twitter
● Cel: o czym piszą fani Java
● Zindeksowana historia
– pokaz
● Live: L z ELK
– konfiguracja
– output
● konsola
● ES
● Query to nie Select
– Search Lite vs DSL
Relewantna informacja
● URI : index/typ/_search
● Search
– Score
– TF-IDF
– Vector Space Model
● Jak a nie Czy pasuje
Filtr czy Query
● Filtr zwraca rezultaty
– constant_score
● Zalety
– Szybkość
– Cache
● Filter + Query
– bool
Analiza jest z pudełka
● text vs keyword
● analiza
– char filter (np. HTML strip)
– tokenizer (np. whitespace)
– token filter (np. stopwords)
● search korzysta z tego
– index time
– fraza szukana
● dopasowanie
– wbudowane
– stwórz sobie sam
Elasticsearch nie tylko dla Wielkodanowców
Agenda
● motywacja
● pierwsze uruchomienie
● troszkę teorii
● demo 1 : tekst
● demo 2 : agregacje
● pytania i odpowiedzi
Nie-pełnotekstowo
● Mapowanie
– różne typy danych
● Agregacje
– Pojęcia
● Bucket, Metric
● Zależne od typu
– Tekst
● Popularne frazy
– Liczby
● Histogram, zakresy
Demo #2, trzesięnia ziemi
● Zdarzenia
– Miejsce, ile ofiar, gdzie
● Technicznie
– Logstash
– Kibana
● Pokazujemy
– Kiedy ludzie ginęli
– Geo punkty
Tworzenie jest proste
● Kibana
– search
– wizualizacja
● Elasticsearch
– bucket
– bucket + metric
Mapowanie
● Nie ma DDL
● Auto
– Coś powstało
● Możesz zdefiniować
– Put mapping
Dashboard = agregacje + czas
● dashboard to zbiór wizualizacji
● przypadki użycia
– nieustanny monitoring logów
– trzymaj rękę na pulsie social-media
● events dashboard
– przefiltrujmy go razem
Agenda
● motywacja
● pierwsze uruchomienie
● troszkę teorii
● demo 1 : tekst
● demo 2 : agregacje
● pytania i odpowiedzi
QA
opcjonalne
● Jest Stempel
● Jest też chiński
● Filebeat jest na topie w ELK
● typo = Fuzzy
● sugestie = Tokenizuj mądrze
in touch
● Twitter : @panlukaszk
● blog : lukcreates.pl
Oni już to mają
● Github
– kod
● Stackoverflow
– pytania i odpowiedzi
● Symantec
– zdarzenia od klientów
● ...
● twój zespół?
Historie sukcesu
● Instalacja i uruchomienie
– Docker
– REST jest łatwo konsumowalny
● Reakcje sa nagrodą
– Namierzenie botów
– Błędy po wdrożeniu
– Automatyczne alerty – zdążyć przed ticketem
– Wąskie gardła
Twój Devops doceni!
● Powtarzalne
– łatwo daje się zdockeryzować
● Skalowalne
– replica
– status zielony gdy 1 replica
● Chmurowe i znane
– sporo providerów – PaaS
– community

More Related Content

PPTX
AI and Machine Learning Demystified by Carol Smith at Midwest UX 2017
PDF
Metody Deep Learning - Wykład 1
PDF
[4DEV][Łódź] Tomasz Stefko - User stories od podszewki, czyli od wymagań po ...
PPT
[4DEV][Łódź] Mariusz Kaczmarek - Od waterfalla przez scruma do kanbana
PDF
PDF
Agregacja i analiza logów
PPTX
PLNOG16: Nowe założenia dla zbieranie logów, statystyk i alertów, Maciej Kałk...
PPTX
Elasticsearch i Docker - skalowalność, wysoka dostępność i zarządzanie zasobami
AI and Machine Learning Demystified by Carol Smith at Midwest UX 2017
Metody Deep Learning - Wykład 1
[4DEV][Łódź] Tomasz Stefko - User stories od podszewki, czyli od wymagań po ...
[4DEV][Łódź] Mariusz Kaczmarek - Od waterfalla przez scruma do kanbana
Agregacja i analiza logów
PLNOG16: Nowe założenia dla zbieranie logów, statystyk i alertów, Maciej Kałk...
Elasticsearch i Docker - skalowalność, wysoka dostępność i zarządzanie zasobami
Ad

Elasticsearch nie tylko dla Wielkodanowców

  • 1. Elasticsearch nie tylko dla Wielkodanowców Łukasz Kuczyński
  • 2. Ja ● Łukasz i inne ● developer ● autofirma ● elastycznie ● gram w nogę
  • 4. Agenda ● motywacja ● pierwsze uruchomienie ● troszkę teorii ● demo 1 : tekst ● demo 2 : agregacje ● pytania i odpowiedzi
  • 5. Motywacja ● Po co nam dane – Gdzie są – Kto ich szuka – Dane a informacje ● Co gdy brak informacji – Support team jest męczony – Leczymy skutki – Nie widzisz
  • 7. Agenda ● motywacja ● pierwsze uruchomienie ● troszkę teorii ● demo 1 : tekst ● demo 2 : agregacje ● pytania i odpowiedzi
  • 8. Opcje ● On premises – hostuj sobie sam – instalki (Winda i Linuch) – Docker-owy obrazek ● Hostingi – AWS – Bonsai.io – usługa albo Linuxbox
  • 10. minidemo: Pierwsze uruchomienie ● cel – pokazać że skomplikowany silnik wyszukiwania da się uruchomić na Twoim kompie – pokazać że to żyje ● kamenie milowe – Linux + Docker – Health – Any REST ● curl ● Kibana devtools
  • 11. Agenda ● motywacja ● pierwsze uruchomienie ● troszkę teorii ● demo 1 : tekst ● demo 2 : agregacje ● pytania i odpowiedzi
  • 12. Pokaż kotku co masz w środku ● Elasticsearch to – Search engine – Biblioteka Lucene – RESTowe narzędzie ● Pojęcia – index > type > document – cluster > node > shard – replica
  • 13. Podstawowe operacje ● Cel – Zindeksujemy dokument i zobaczymy co automatycznie stworzył nam silnik ES ● Kamienie milowe: – Otwieram Kibana (K z ELK) – Tworzę indeks – Wrzucam dokument – Indeks ma mapowanie – Szukam i znajduję
  • 14. ES to .. bogactwo API ● REST ● Language-specific – Java ● official ES library – Spring ● SpringData Repository – Python ● pokażmy kod
  • 15. w Pythonie jest łatwo
  • 16. Elasticsearch to „baza” ● Nie zawsze jako podstawa – Świetny cache – Aplikacje zorientowane na search ● Security – X-Pack to dodatek ● Transakcje – Wersjonowanie dokumentów
  • 17. Agenda ● motywacja ● pierwsze uruchomienie ● troszkę teorii ● demo 1 : tekst ● demo 2 : agregacje ● pytania i odpowiedzi
  • 18. Demo #1 : twitter ● Cel: o czym piszą fani Java ● Zindeksowana historia – pokaz ● Live: L z ELK – konfiguracja – output ● konsola ● ES ● Query to nie Select – Search Lite vs DSL
  • 19. Demo #1 : twitter ● Cel: o czym piszą fani Java ● Zindeksowana historia – pokaz ● Live: L z ELK – konfiguracja – output ● konsola ● ES ● Query to nie Select – Search Lite vs DSL
  • 20. Relewantna informacja ● URI : index/typ/_search ● Search – Score – TF-IDF – Vector Space Model ● Jak a nie Czy pasuje
  • 21. Filtr czy Query ● Filtr zwraca rezultaty – constant_score ● Zalety – Szybkość – Cache ● Filter + Query – bool
  • 22. Analiza jest z pudełka ● text vs keyword ● analiza – char filter (np. HTML strip) – tokenizer (np. whitespace) – token filter (np. stopwords) ● search korzysta z tego – index time – fraza szukana ● dopasowanie – wbudowane – stwórz sobie sam
  • 24. Agenda ● motywacja ● pierwsze uruchomienie ● troszkę teorii ● demo 1 : tekst ● demo 2 : agregacje ● pytania i odpowiedzi
  • 25. Nie-pełnotekstowo ● Mapowanie – różne typy danych ● Agregacje – Pojęcia ● Bucket, Metric ● Zależne od typu – Tekst ● Popularne frazy – Liczby ● Histogram, zakresy
  • 26. Demo #2, trzesięnia ziemi ● Zdarzenia – Miejsce, ile ofiar, gdzie ● Technicznie – Logstash – Kibana ● Pokazujemy – Kiedy ludzie ginęli – Geo punkty
  • 27. Tworzenie jest proste ● Kibana – search – wizualizacja ● Elasticsearch – bucket – bucket + metric
  • 28. Mapowanie ● Nie ma DDL ● Auto – Coś powstało ● Możesz zdefiniować – Put mapping
  • 29. Dashboard = agregacje + czas ● dashboard to zbiór wizualizacji ● przypadki użycia – nieustanny monitoring logów – trzymaj rękę na pulsie social-media ● events dashboard – przefiltrujmy go razem
  • 30. Agenda ● motywacja ● pierwsze uruchomienie ● troszkę teorii ● demo 1 : tekst ● demo 2 : agregacje ● pytania i odpowiedzi
  • 31. QA
  • 32. opcjonalne ● Jest Stempel ● Jest też chiński ● Filebeat jest na topie w ELK ● typo = Fuzzy ● sugestie = Tokenizuj mądrze
  • 33. in touch ● Twitter : @panlukaszk ● blog : lukcreates.pl
  • 34. Oni już to mają ● Github – kod ● Stackoverflow – pytania i odpowiedzi ● Symantec – zdarzenia od klientów ● ... ● twój zespół?
  • 35. Historie sukcesu ● Instalacja i uruchomienie – Docker – REST jest łatwo konsumowalny ● Reakcje sa nagrodą – Namierzenie botów – Błędy po wdrożeniu – Automatyczne alerty – zdążyć przed ticketem – Wąskie gardła
  • 36. Twój Devops doceni! ● Powtarzalne – łatwo daje się zdockeryzować ● Skalowalne – replica – status zielony gdy 1 replica ● Chmurowe i znane – sporo providerów – PaaS – community

Editor's Notes

  • #2: Dzisiejsza prezentacja jest przeznaczona zarówno dla osób technicznych jak i nietechnicznych. Pokażę dzisiaj zarówno bezpośrednie zastosowania (tzw. przypadki użycia) Elasticsearcha jak i radość z pisania kodu :) Dla każdego coś dobrego Chciałbym żebyś po tej prezentacji uwierzył że silniki wyszukiwania to przyszłość analizy danych a jest to dostępne dla każdego.
  • #3: Ja jestem skromnym programistą, z zamiłowania. 7 lat programuję w różnych językach. Ostatnio najwięcej w Pythonie choć moje stanowisko to Programista Javy.
  • #5: dlaczego od uruchomienia bo najbardziej męczy mnie poznawanie teorii bez praktyki jestem za jak najszybszym (agile) dostarczaniem produktu dla SIEBIE a potem stopniowym usprawnianiem
  • #6: BigData to brzmi szumnie ale rzeczywiście jesteśmy otoczeni danymi coraz mniejsze urządzenia potrafią generować dane żeby je zrozumieć trzeba je jakoś przerobić gdzie różne źródła to komplikacja, wiele serwerów, wiele baz/systemów plików kompetencje ludzi którzy ich szukają mają znaczenie Dane przychodzą z wielu źródeł dane to nie informacje Wizualizacja jest istotna Jesteśmy stworzeni w taki sposób że obrazy trafiają do nas mocniej niż tekst – pokaż dane
  • #11: 10 pierwsze uruchomienie 1. pokazujemy compose 1.5 docker-compose 2. curl na 9200 3. idziemy do przeglądarki 4. otwieramy devtools
  • #13: Pojęcia Niech analogia z bazy relacyjnej będzie dziś z nami Indeks – baza danych Typ – jak tabela Dokument to krotka Document to json Node to serwer Cluster zbiera node razem Shard to podstawowa jednostka składowania (Lucene) Głowne i replica
  • #14: wrzucam blogpost first_interaction.txt
  • #15: Przykłady W dev_tools (kiedyś sense wtyczka do przeglądarek) używaliśmy API REST
  • #16: SDK python Pokazujemy kod Python helpers Piękno generatorów (obsługiwanie kolekcji), domyślnie tworzone chunks do wydajnego indeksowania danych (bulk API)
  • #17: Primary datasource – nunu! niewiele jest aplikacji które potrzebują bezpiecznego zapisu, ostatnio słyszałem o tym że są całe ruchy społeczne nakłaniające do użycia w fintech (dla finansjery) Xpack to bogaty dodatek, posiada wiele rozszerzeń niebędących częścią core ES Transakcje nie są od ręki, wersja dokumentów sprawdzanie po zapisie dokument który stworzyliśmy krok temu też miał wersję, teraz jak zrobimy PUT 2x to będzie podniesiona
  • #19: historia wizualizacja tutaj Logstash napełnił dane odpalamy Query to nie select Lite vs DSL search_dsl_lite.txt
  • #20: historia wizualizacja tutaj Logstash napełnił dane odpalamy Query to nie select Lite vs DSL search_dsl_lite.txt
  • #21: search pandas,javascript,spring score TF - jak często token występuje w dokumencie (więcej > większy score) IDF - jak często wyrażenie występuje w każdym dokumenci normalizacja długości pola (krótsze lepiej) VSM – dokumenty zamieniane na wektory na podstawie score filtr vs search filtr: chcę kawę a nie herbatę zapytanie punktowane: jadę na wakacje i ważę w głowie czynniki- odległość od morza, basen, jedzenie, cena itp...
  • #22: filter.txt zalety nie zależy nam na wyniku cachowanie z pudełka filter_query.txt
  • #23: blog_analyze analizator.txt
  • #24: 2 analizator
  • #26: przed mapowaniem ES widzi json jako tekst już dzisiaj widzieliśmy 1 agregację datehistogram elasticsearch to także liczby pojęcia podstawowe bucket to zbiór, sposob podziału metric to operacja na tym, np count (podstawowa) date historgram który widzieliśmy to bucket typu czas(1min) count() pokaż na wykersie to! tekst popularne frazy liczby: wymień kilka ..
  • #27: pokazujemy 2 wizualizacje
  • #28: histogram bucket.txt bucket_metric.txt smaczne api – łatwo konsumować te JSONy to właśnie Kibana pokazuje
  • #29: czy zauważyłeś że nie powstało żadne DDL do tej pory? Elasticsearch sam zgaduje nazwy typów i tworzy mapowanie funkcja którą móżna wyłączyć ale na potrzeby developerskie jest po prostu wygodna mapowanie plik tworzymy dla bloga a potem korzystamy z radości działań na liczbach które dopiero co zindeksowaliśmy mapowanie powstało zdefiniujemy mapowanie teraz można range, avg agregacje
  • #36: Docker w topologii korporacyjnej Rest to świetny sposób komunikacji ES ze światem – łatwo się integruje (vs SOLR) sukces hisotire zobaczyliśmy na własne oczy która część systemu działa najwolniej (wąskie gardło)
  • #37: Skalowalne pokaż status/ indices yellow.txt Chmurowe jak coś kiedyś pisałeś to wiesz jak ważne jest community