Bazy danych NoSQL - MongoDB
Czas trwania szkolenia:4 dni (32h)
Kod kursu:MONGODB
Poziom zaawansowania:
O szkoleniu Bazy danych NoSQL - MongoDB
W cenie otrzymasz:
- Materiały szkoleniowe
- Certyfikat ukończenia szkolenia
- W przypadku szkolenia w trybie stacjonarnym zapewnimy Ci również lunch oraz sprzęt niezbędny do nauki
Dla kogo?
- Szkolenie kierowane do programistów, architektów oraz administratorów, którzy chcą tworzyć lub utrzymywać systemy oparte MongoDB
- Adresatami szkolenia są w szczególności osoby, dla których wydajność opracowywanych rozwiązań oraz wolumen przetwarzanych danych ma wysoki priorytet
- Szkolenie kierowane do osób zajmujących się obecnie tworzeniem relacyjnych baz danych, które chcą uzupełnić swoją wiedzę o technologie alternatywne
Wymagania
- Podstawowa znajomość teorii baz danych
- Podstawowa znajomość formatu JSON
- Podstawowa znajomość języka JavaScript
Zalety
- Program szkolenia obejmuje niemal wszystkie funkcjonalności dostępne w ramach MongoDB
- Omówienie niestandardowych problemów oraz ograniczeń, które mogą występować w trakcie wdrożenia produkcyjnego bazy MongoDB
- Szkolenie skupia się zarówno na tworzeniu prostych architektur, złożonych z jednej instancji, jak i realizacji złożonych klastrów
- Praktyka przed teorią - wszystkie szkolenia technologiczne prowadzone są w formie warsztatowej. Konieczna teoria jest wyjaśniana na przykładzie praktycznych zadań
- Konkretne umiejętności - w ramach każdego szkolenia rozwijamy praktyczne umiejętności związane z daną technologią i tematyką
- Nauka z praktykami - wszyscy trenerzy na co dzień pracują w projektach, gwarantuje to dostęp do eksperckiej wiedzy i praktycznego know-how
Cele szkolenia
- Zdobycie specjalistycznej wiedzy z zakresu MongoDB - od projektowania modelu danych, poprzez język zapytań, aż po tworzenie klastrów z zastosowaniem technik replikacji oraz shardingu
- Praktyczne wykorzystanie najważniejszych funkcjonalności oraz mechanik MongoDB
- Poznanie sposobów na tworzenie wydajnych rozwiązań opartych o MongoDB
Program
Wstęp do MongoDB
- Wprowadzenie do baz danych NoSQL
- Przyczyny powstania baz nierelacyjnych
- Cechy MongoDB
- Zalety oraz wady MongoDB
- Technologie i rozwiązania powiązane z MongoDB
- Korzystanie z Mongo Shell oraz Robo 3T
Uruchamianie i konfiguracja MongoDB
- Uruchamianie serwera, parametry startowe
- Obsługa konsoli klienta
- Odczyt konfiguracji z pliku
- Używanie zewnętrznych źródeł konfiguracji (REST/EXEC)
Podstawowe zapytania oraz struktura danych
- Typy przechowywanych danych
- Insert
- Save
- Remove
- Update
- Find/FindOne
- Rola i właściwości kursora wyniku zapytania
- Mechanizm projekcji danych
- Sortowanie, skip, limit
- Selektory zapytań
- Tworzenie warunków logicznych
Zaawansowane zapytania
- $exists
- Dynamiczne zapytania z wykorzystaniem $expr oraz $where
- Obsługa wyrażeń regularnych za pomocą $regex
- Operacje na tablicach oraz setach
- FindAndModify oraz operator $inc
- Operator pozycji oraz ArrayFilter
- Dobre praktyki wydajności tworzonych zapytań
Walidacja dokumentów
- Tworzenie oraz modyfikacja prostych walidatorów
- Poziomy walidacji
- Akcje walidacji
- Walidacja z wykorzystaniem JSON Schema
- Dodatkowe opcje
Aggregation Framework
- Aggregation Pipeline
- Struktura zapytania agregującego
- Operatory agregacji
- Wybrane akumulatory grupowania
- Rozbijanie tablic za pomocą $unwind
- Multioperacje z wykorzystaniem $facet
- Łączenie danych z różnych kolekcji za pomocą $lookup
- Ograniczenia mechanizmu agregacji
MapReduce
- Czym jest MapReduce?
- Struktura zapytania MapReduce
- Funkcja mapująca
- Funkcja redukująca
- Funkcja finalizująca
Modelowanie danych
- Dobre praktyki projektowania modeli w MongoDB
- Wady i zalety modeli zagnieżdżonych
- Rodzaje oraz sposób implementacji relacji
- Często popełniane błędy
GridFS
- Przechowywanie danych binarnych w MongoDB
- Metadane i kawałki
- Użycie mongofiles
- Przesłanki do używania GridFS
Storage Engines
- Omówienie wewnętrznych silników przechowywania plików dostępnych z MongoDB
- Cechy, zalety oraz wady silnika MMAPv1
- Cechy, zalety oraz wady silnika WiredTiger
- Mechanizm zapisu WiredTiger (snapshot, checkpoint)
- Porównanie zużycia pamięci RAM przez poszczególne silniki
Indeksy w MongoDB
- Definiowanie indeksów
- Indeksy proste i złożone
- Użycie indeksów na zagnieżdżonych dokumentach
- Indeksy multikey (tablicowe)
- Indeksy częściowe
- Indeksy wildcard
- Statystyki indeksów
- Weryfikacja planu zapytania
- Przeglądanie i czyszczenie cache planów zapytań
Monitorowanie, diagnostyka i profilowanie
- mongotop
- mongostat
- Free MongoDB Cloud Monitoring
- Listowanie aktualnie wykonywanych przez bazę operacji
- Uruchamianie oraz konfiguracja profilowania
- Przegląd informacji zapisywanych przez profiler
Full Text Search
- Czym jest Full Text Search?
- Tworzenie indeksów Full Text Search
- Obsługa analizy słowotwórczej
- Waga pól oraz sortowanie po dopasowaniu
- Operator $
- Ograniczenia
Replikacja
- Rola replikacji w rozszerzaniu możliwości MongoDB
- Elementy składowe Replica Set
- Mechanizm failover oraz sterowanie elekcją węzła Primary
- Rola arbitra
- Budowa oraz zasada działania oploga
- Komendy administracyjne w secie replikacyjnym
- Konfiguracja Replica Set
- Ukryty oraz opóźniony węzeł
- Stany węzłów
- Problemy z desynchronizacją
Sharding
- Rola shardingu w rozszerzaniu możliwości MongoDB
- Config server
- Query router
- Wybór klucza shardowania
- Partycjonowanie danych
- Komendy administracyjne w klastrze
- Konfiguracja klastra
Transakcje
- Zasada działania transakcji
- Obsługa sesji
- Ograniczenia związane z transakcjami
- Wydajność zapytań z transakcjami
Change streams
- Wzorzec publish-subscribe
- Subskrypcja zmian w MongoDB
- Format zwracanego dokumentu
Narzędzia administracyjne i diagnostyczne
- Strategie tworzenia backupów (mongodump, mongorestore)
- Diagnostyka działania Mongo (mongostat, mongotop, listing aktywnych operacji)
- Monitorowanie procesu replikacji
Biblioteki klienckie (opcjonalne)
Java Driver
- CSharp Driver