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
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
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
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
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
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
#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
#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 ..
#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