Szkolenie wycofane z oferty Program szkolenia: Apache Cassandra - modelowanie, wydajność, analiza danych Informacje: Nazwa: Kod: Kategoria: Grupa docelowa: Czas trwania: Forma: Apache Cassandra - modelowanie, wydajność, analiza danych BigDataML-cassandra BigData, streaming i Machine Learning architekci developerzy 3 dni 30% wykłady/ 70% warsztaty Szkolenie przeznaczone dla architektów oraz programistów, których celem jest poszerzenie wiedzy na temat kolumnowych baz danych, kładąc główny nacisk na prawidłowe projektowanie struktur, dostosowane do wymogów rozwiązań różnych klas. Nieprawidłowe działania w tym aspekcie, w początkowej fazie projektu, mogą nie tylko zrazić do kolumnowych baz danych, ale i skutecznie zablokować możliwość rozwoju produktu lub podważyć kompetencje zespołu wdrażającego rozwiązanie oparte na Apache Cassandra. W trakcie szkolenia omawiane są również typowe problemy, z którymi na co dzień spotykają się użytkownicy. Owe problemy to zbiór przepisów gromadzonych od pierwszego produkcyjnego wdrożenia w 2011 roku. Odniesienie do źródeł problemów, a nie tylko sposobów ich łatania pozwoli na zdobycie solidnych fundamentów do analizy tych które nie zostaną omówione w trakcie szkolenia. Apache Cassandra jest darmową odpowiedzią na zamknięty Google Bigtable oraz komercyjny Amazon DynamoDB, która ostatnimi czasy zyskuje na popularności. Czyni to dzięki znanym firmom IT, które szukając optymalnego rozwiązania na przechowywanie ogromnych ilości danych, zdecydowały się na wybór wydajnego i skalowalnego repozytorium kolumnowego. Coraz częściej pojawiające się systemu w architekturze CQRS, w połączeniu z Event Sourcingiem wymagają rozwiązań umożliwiających szybki zapis, skalowalnych oraz odpornych na awarie. Cassandra doskonale wpasowuje się w te wymagania umożliwiając stałą prędkość zapisu danych, niezależną od ilości przechowywanych danych, co w przypadku rozwiązań bazodanowych stanowi rzadkość. Odczyt danych jest na tyle szybki, że stawia pod znakiem zapytania konieczność utrzymywania cache po stronie aplikacji. W tym wszystkim jest tylko jeden drobny niuans. Przygotowanie rozwiązania do produkcyjnego działania wymaga sporego nakładu pracy. Warto zatem skorzystać z gotowych rozwiązań i odpowiednich metodyk projektowania bazy danych. Strona: 1/6
Zalety szkolenia: Racjonalne modelowanie danych Tuning wydajności Przykłady i problemy z realnych systemów Strona: 2/6
Szczegółowy program: 1. Modelowanie danych w bazach kolumnowych 1.1. Wprowadzenie do skalowalnych baz danych NoSQL 1.2. Wyzwania wynikające ze stosowania baz rozproszonych 1.2.1. Eventual consistency i teoria CAP 1.2.2. Zmiana bazy z SQL na NoSQL na poziomie biznesu 1.2.3. Stabilność infrastruktury sieciowej a koszt rozproszenia danych 1.2.4. Problemy analizy dużych zbiorów danych 1.3. Sposoby modelowania w kolumnowych bazach danych 1.3.1. przechowywanie zdarzeń i danych time-series 1.3.2. płaskie agregaty 1.3.3. znormalizowane dane 1.3.4. duplikowanie danych do struktur read-modelu 2. Dlaczego Apache Cassandra? 2.1. Złote zasady doboru odpowiedniej technologii do rozwiązywania 2.2. Kiedy unikać stosowania Cassandry? 2.3. Alternatywne rozwiązania tej klasy 3. Architektura rozwiązania 3.1. Keyspace, Column Family 3.2. CommitLog, Memtables oraz SSTables 3.3. Dystrybucja danych w klastrze token-ring 3.3.1. Vnodes vs. statyczny podział 3.4. Konfigurowalna gwarancja spójności 3.4.1. Consistency Levels Strona: 3/6
3.4.2. Read repair 3.4.3. Wydajność - czyli na co się nastawiać? 4. Modele replikacji danych 4.1. Składowanie danych w jednej serwerowni 4.2. Dystrybucja danych pomiędzy wieloma lokalizacjami fizycznymi 4.3. Konfiguracja polityki replikacji 5. Wyszukiwanie 5.1. Język zapytań CQL 5.2. Denormalizacja danych pod wydajne zapytania 5.2.1. Widoki zmaterializowane vs. indeksy drugiego rzędu 5.2.2. Wyzwalacze (triggery) 5.3. Separacja modelu odczytu na przykładzie symbiozy z Elasticsearch 6. Korzystanie z Apache Cassandra 6.1. Instalacja i konfiguracja klastra 6.2. Modelowanie struktur danych 6.2.1. Wbudowane oraz własne typy danych 6.2.2. Obsługa danych w formacie JSON 6.2.3. Tworzenie, modyfikacja oraz usuwanie przestrzeni i tabel 6.2.4. Właściwe tworzenie kluczy danych 6.3. Metody tworzenia i modyfikacji dokumentów 6.3.1. Zapis, aktualizacja i usuwanie danych 6.3.2. Sposoby rozwiązywania konfliktów 6.4. Wyszukiwanie danych 6.4.1. Możliwości i ograniczenia wyszukiwania danych 6.4.2. Funkcje skalarne i agregujące Strona: 4/6
6.5. Wyzwalacze (triggery) 6.5.1. Mechanika działania oraz przykładowe przypadki użycia? 6.5.2. Implementacja własnego wyzwalacza na przykładzie zbierania alertów 6.6. Komunikacja z poziomu aplikacji 6.6.1. Wykorzystanie natywnego sterownika DataStax 6.6.2. Dostęp do danych poprzez Spring Data 7. Analiza danych składowanych w Cassandrze 7.1. Eksport danych do SQL z wykorzystaniem CDC 7.2. Apache Spark 8. Performance tuning 8.1. Metody namierzania problemów wydajnościowych 8.2. Jak radzić sobie ze zbyt wolnymi zapytaniami? 8.3. Podkręcenie wydajności poprzez cache 8.4. Separacja commit logu oraz danych 8.5. Tuning wydajności poprzez modyfikację parametrów pamięci 8.6. Modyfikacja architektury klastra w celu zwiększenia wydajności 9. Planowanie produkcyjnej architektury klastra Apache Cassandra 9.1. Określanie produkcyjnego obciążenia 9.2. Dobór właściwego sprzętu 9.3. Zalecane ustawienia 10. Utrzymanie i rozwój infrastruktury klastra Apache Cassandra 10.1. Zabezpieczanie klastra i danych (autoryzacja i uwierzytelnianie - użytkownicy oraz role) 10.2. Utrzymywanie spójności klastra (incremental/full repair): jak skutecznie zapobiegać utracie danych 10.3. Kompaktowanie i kompresja danych w celu zwiększenia wydajności i zmniejszenia kosztów składowania danych Strona: 5/6
10.4. Aktualizacja oprogramowania 10.5. Monitorowanie klastra 10.6. Kopie zapasowe i przywracanie danych 10.7. Najważniejsze narzędzia przydatne w codziennej pracy 10.7.1. cqlsh 10.7.2. nodetool 10.7.3. cassandra_stress Strona: 6/6