ElasticSearch dla developerów
Najbliższe terminy tego szkolenia
Standardy JSystems
- Wszyscy nasi trenerzy muszą być praktykami i osiągać średnią z ankiet minimum 4.75 na 5. Nie ma wśród nas trenerów-teoretyków. Każdy trener JSystems ma bogate doświadczenie komercyjne w zakresie tematów z których prowadzi szkolenia.
- Wszystkie szkolenia mają format warszatowy. Każde zagadnienie teoretyczne jest poparte rzędem warsztatów w ściśle określonym formacie.
- Terminy gwarantowane na 100%. Jeśli jakiś termin jest oznaczony jako gwarantowany, oznacza to że odbędzie się nawet jeśli część grupy wycofa się z udziału. Ryzyko ponosimy my jako organizator.
- Do każdego szkolenia które wymaga jakiegokolwiek oprogramowania dostarczamy skonfigurowane, gotowe hosty w chmurze. Dzięki temu uczestnik nie musi nic instalować na swoim komputerze (i bić się z blokadami korporacyjnymi). Połączenie następuje przez zdalny pulpit lub SSH - w zależności od szkolenia.
Program szkolenia
- Podstawy ElasticSearch
- ElasticSearch jako produkt i ElasticSearch jako firma
- czym jest ElasticSearch i jego API
- typy instalacji: on-premis i w chmurze
- różnice z AWS OpenSearch
- słów kilka o ekosystemie ElasticSearch - ELK (ElasticSearch, Kibana, Logstash)
- przykładowe zastosowania ElasticSearcha: e-commerce, logs collection, observability, document search
- Czym jest inverted index, Lucene, BM25?
- Czym jest cluster i jak jest zbudowany
- typy nodes, ich funkcje i charakterystyka i różnice
- obsługa komunikacji wewnętrznej między nodami i z klientem - czym są threads and queues?
- alokacja fizycznych zasobów do nodes - na co zwracać uwagę przy wyborze CPU, RAM, dysku, sieci
- W jaki sposób przechowywane są dane?
- czym jest index, alias, shard and replica
- jak jest zaimplementowany koncept redundancy and high-availability w ES?
- w jaki sposób dane są dystrybuowane między nodami: shard balancing and shard awarness
- Zależność między strukturą klastra a indexem - podsumowanie wcześniejszych informacji
- ElasticSearch jako produkt i ElasticSearch jako firma
- Modelowanie danych w ES
- Na czym polega modelowanie danych zależnie ich przeznaczenia
- różnica między updateable data vs append-only time series
- czym jest design-to-search i jak sie on różni od podejścia znanego z baz relacyjnych?
- Definicja indexu - czym są settings i mappings?
- różnice między dynamic mapping vs explicit mapping vs Elastic Common Schema
- typy danych: podstawowe, liczbowe, tekstowe, spatial, ranking, runtime fields
- rola metadata i parametrów mapowania (przegląd wybranych parametrów)
- w jaki sposób zamodelować relacje między dokumentami: flat structure, tablica, parent-child, nested, lookup
- Charakterystyka pól tekstowych
- czym jest text analysis i dlaczego jest tak ważna?
- czym są analyzers i normalizers - budowa i zasada działania
- przegląd wbudowanych analyzers i definiowanie własnych
- czym jest similarity module
- Jaki ma to wpływ na ilość shards dla indexu i ich wielkość?
- Na czym polega modelowanie danych zależnie ich przeznaczenia
- Indeksowanie danych
- Na czym polega indeksowanie danych do ES?
- przegląd metod API - index, update, upsert - kiedy jaką zastosować?
- czym są ingest pipelines - definicja i zastosowanie
- efektywne indeksowanie dużych ilości danych - bulk
- czym jest reindex API
- Współzależność między strukturą klustra i definicją indexu
- jak ilość shards i replicas wpływa na przepustwowość klustra
- jak parametry nodes określają przepustowość klustra
- dlaczego przeciążanie clustra zapisami może poważnie zdegradować wydajność wyszukiwania
- W jaki sposób ES obsługuje requesty do zapisu/zmiany danych?
- konsekwencje systemu typu "immutable" - rola translog, refresh_interval i merge
- jak działa concurency control
- diagram obsługi requestu
- Na czym polega indeksowanie danych do ES?
- Mechanizm wyszukiwania
- Na czym polega mechanizm wyszukiwania
- przypomnienie konceptu inverted index
- czym jest full text search
- różnica między search-context a filter-context
- W jaki spsób ES obsługuje requesty do wyszukiwania danych
- diagram obsługi requestu
- charakterystyka etapu "query"
- charakterystyka etapu "fetch"
- Współzależność między strukturą klustra i definicją indexu
- jak ilość shards i replicas wpływa na czas obsługi zapytania
- jak parametry nodes określają przepustowość klustra
- wpływ timeouts i partial responses na końcowy wynik rezultatów
- Przegląd typów zapytań: full-text, secialized, term-level, shape, join, compound
- Przegląd metod API: get, multi-get, async-search, kNN, scroll, template, point in time, count
- Jak obsługiwać paging, grupowanie wyników, sortowanie?
- Czym sa highlights, suggesters - jak można ich użyć do implemmentacji suggestions/instant-search?
- Czym są agregacje i do czego się ich używa?
- analiza obsługi zapytania z agregacjami
- przegląd typów agregacji - metric, bucket, piepline
- Czym jest search relevance?
- czym jest search strategy
- podejście field-centric i term-centric
- różnica między keword-search a semantic-search
- zastosowanie ML, NLP do wyszukiwania dokumentów
- Sposoby na analizę i optymalizację nieefektywnych zapytań
- Na czym polega mechanizm wyszukiwania
- Infrastruktura
- Jakie parametry clustra warto monitorować i jak?
- self-monitoring w Kibanie a zbieranie metryk w DataDog
- analiza problematycznych requestów za pomocą slowlogs
- stabilność master-nodes
- Skalowanie klustra a skalowanie indeksu.
- Backup danych w ES
- Zastosowania i możliwości Kibany
- Zalety Infrastructure-as-a-Code dla deploymentów self-managed
- Jakie parametry clustra warto monitorować i jak?
Opis szkolenia
Szkolenie odbywa się na żywo z udziałem trenera. Nie jest to forma kursu video!O szkoleniu
Kurs wprowadzający do technologii Elasticsearch. Zajmiemy się wyjaśnieniem wewnętrznej implementacji narzędzia i jaki ma to wpływ na jego wydajność, przepustowość i możliwości. Elasticsearch jest rozbudowanym ekosystemem, działającym na zasadzie naczyń połaczonych między funkconalnościami. Charakteryzuje sie dużą dynamiką i bez podstaw teoretycznych trudniej jest zrozumieć i wyjaśnić stan klustra. Omówimy dwie podstawowe funkcje jak indeksowanie danych i wyszukiwanie danych wraz z komponowanie zapytań i definiowaniem strategii wyszukiwania. Ich zasadę działania, praktyczne użycie i optymalizację. Sam temat optymalizacji w środowisku Elasticsearch jest kluczowym zagadnieniem i będzimey wokół tego tematu zawsze oscylować. Poruszymy kwestie search relevance wyników wyszukiwania, które sa charaktersytyczne dla full-text searcha i aplikacji opartych na wyszukiwaniu danych. Kurs domkniemy zagadnieniami DevOps jak monitorowanie klastra, skalowanie, backup.
Dla kogo ten kurs jest przeznaczony?
Podstawowa znajomość ES jest mile widziana, ale nie jest obowiązkowa. Kurs dostarczy mocnych podstaw do zrozumienia różnych stanów klustra ES. Podstawy teoretyczne są agnostyczne względem możliwości zastosowania technologii. Moduły poświęcone wyszukiwaniu i search relevance najbardziej przydatne będą deweloperom aplikacji opartych na wynikach wyszukiwania. Elasticsearch jest jedną z tych techchnologii, której utrzymania lepiej nie delegować. Jeśli Twoja aplikacja polega na jakościowych wynikach - wskazane jest poznanie jego implementecji. Dlatego zachęcam do kursu, pomoże to w zrozumieniu własnego klustra ES oraz jego ulepszeniu.
Prowadząca szkolenie: Elżbieta Jakubowska
Jest pasjonatką i praktykantką teamu Search Engineering i Search Relevance. Z pochodzenia backend deweloper, następnie full-stack, obecnie search engineer. Pracowała dla zagranicznych i polskich firm nad audytem, projektowaniem, implementacją, wdrożeniem, optymalizacją i utrzymaniem systemów opartych na jakościowych wynikach wyszukiwania. Jej ulubionymi zagadnieniami są search-relevance i search-infrastructure. Aktualnie pracuje dla szwajcarskiej firmy e-commerce.
Stanowisko robocze
Do tego szkolenia każdy uczestnik otrzymuje dostęp do indywidualnej wirtualnej maszyny w chmurze. Ma ona zainstalowane i skonfigurowane wszystko co potrzebne do realizacji szkolenia. Maszyna będzie dostępna przez cały okres szkolenia.
Gdy na jakiś termin zgłosi się minimalna liczba osób, termin oznaczamy jako gwarantowany.
Jeśli jakiś termin oznaczony jest jako gwarantowany to oznacza to, że na 100% się odbędzie we wskazanym czasie i miejscu.
Nawet gdyby część takiej grupy zrezygnowała lub przeniosła się na inny termin, raz ustalony termin gwarantowany takim pozostaje.
Ewentualne ryzyko ponosimy my jako organizator.
Przejdź do terminów tego szkolenia