- comfortable with Java programming language
- comfortable in Linux environment (navigating command line, editing files with vi / nano)
Apache Cassandra - szkolenie dedykowane
Modelowanie danych w bazach kolumnowych
1. Wprowadzenie do skalowalnych baz danych NoSQL
2. NoSQL vs klasyczne podejście
• Przetłumaczenie wierszy na kolumny
• Zmiana bazy z SQL na NoSQL na poziomie biznesu
3. Sposoby modelowania w kolumnowych bazach danych
• przechowywanie zdarzeń i danych time-series
• płaskie agregaty
• normalizowanie danych
• duplikowanie danych do struktur read-modelu
4. Wyzwania wynikające ze stosowania baz rozproszonych
• Eventual consistency i teoria CAP
• Stabilność infrastruktury sieciowej a koszt rozproszenia danych
• Problemy analizy dużych zbiorów danych
Dlaczego Apache Cassandra?
• Złote zasady doboru odpowiedniej technologii do rozwiązywania
• Kiedy unikać stosowania Cassandry?
• Alternatywne rozwiązania tej klasy
Korzystanie z Apache Cassandra
1. Instalacja i konfiguracja klastra 2. Modelowanie struktur danych
• Wbudowane oraz własne typy danych
• Obsługa danych w formacie JSON
• Tworzenie, modyfikacja oraz usuwanie przestrzeni i tabel
• Właściwe tworzenie kluczy danych
3. Metody tworzenia i modyfikacji dokumentów
• Zapis, aktualizacja i usuwanie danych
• Sposoby rozwiązywania konfliktów
4. Wyszukiwanie danych
• Możliwości i ograniczenia wyszukiwania danych
• Funkcje skalarne i agregujące
5. Wyzwalacze (triggery)
• Mechanika działania oraz przykładowe przypadki użycia?
• Implementacja własnego wyzwalacza na przykładzie zbierania alertów
6. Komunikacja z poziomu aplikacji
• Wykorzystanie natywnego sterownika DataStax
• Dostęp do danych poprzez Spring Data
Architektura rozwiązania
1. Keyspace, Column Family
2. CommitLog, Memtables oraz SSTables
3. Dystrybucja danych w klastrze token-ring
• Vnodes vs. statyczny podział
4. Konfigurowalna gwarancja spójności
• Consistency Levels
• Read repair
• Wydajność - czyli na co się nastawiać?
Modele replikacji danych
• Składowanie danych w jednej serwerowni
• Dystrybucja danych pomiędzy wieloma lokalizacjami fizycznymi
• Konfiguracja polityki replikacji
Wyszukiwanie
1. Język zapytań CQL
2. Denormalizacja danych pod wydajne zapytania
• Widoki zmaterializowane vs. indeksy drugiego rzędu
• Wyzwalacze (triggery)
3. Separacja modelu odczytu na przykładzie symbiozy z Elasticsearch
Analiza danych składowanych w Cassandrze
• Eksport danych do SQL z wykorzystaniem CDC
• Wprowadzenie do Apache Spark
Performance tuning
• Metody namierzania problemów wydajnościowych
• Jak radzić sobie ze zbyt wolnymi zapytaniami?
• Podkręcenie wydajności poprzez cache
• Separacja commit logu oraz danych
• Tuning wydajności poprzez modyfikację parametrów pamięci
• Modyfikacja architektury klastra w celu zwiększenia wydajności
Planowanie produkcyjnej architektury klastra Apache Cassandra
• Dobre praktyki
• Określanie produkcyjnego obciążenia
• Dobór właściwego sprzętu
• Zalecane ustawienia
Utrzymanie i rozwój infrastruktury klastra Apache Cassandra
1. Zabezpieczanie klastra i danych (autoryzacja i uwierzytelnianie - użytkownicy oraz role) 2. Utrzymywanie spójności klastra (incremental/full repair): jak skutecznie zapobiegać utracie danych
3. Kompaktowanie i kompresja danych w celu zwiększenia wydajności i zmniejszenia kosztów składowania danych
4. Aktualizacja oprogramowania
5. Monitorowanie klastra
- Grafana
- DataStax
- NewRelic
- DataDog
- Nagios
6. Kopie zapasowe i przywracanie danych
7. Najważniejsze narzędzia przydatne w codziennej pracy
• cqlsh
• nodetool
• cassandra_stress