Bazy danych NoSQL - MongoDB
LICZBA DNI: 4 (32h)
KOD KURSU: MONGODB
Weź udział w szkoleniu
Termin
Lokalizacja
Trener
Cena / os
24
maja
Warszawa,
Zdalne,
Termin
24
maja
Lokalizacja
Warszawa,
Zdalne,
Trener
Cena / os
Powiadom
o kolejnych terminach
O szkoleniu
DLA KOGO?
Szkolenie jest kierowane do programistów, architektów oraz administratorów, którzy chcą tworzyć lub utrzymywać systemy oparte o bazy danych MongoDB
Adresatami szkolenia są w szczególności osoby dla których wydajność opracowywanych rozwiązań oraz wolumen przetwarzanych danych ma wysoki priorytet
Szkolenie jest także kierowane do osób zajmujących się obecnie tworzeniem relacyjnych baz danych, które chcą uzupełnić swoją wiedzę o technologie alternatywne, które stanowią alternatywę dla bazy relacyjne w zastosowaniach ukierunkowanych na wysoką przepustowość
WYMAGANIA
Podstawowa znajomość teorii baz danych
Podstawowa znajomość formatu JSON
Podstawowa znajomość JavaScript (w zakresie tworzenia pętli, instrukcji warunkowych)
ZALETY
Program szkolenia obejmuje niemal wszystkie funkcjonalności dostępne w ramach MongoDB
Oprócz wiedzy teoretycznej poparte jest omówieniem niestandardowych problemów oraz ograniczeń które mogą występować w trakcie wdrożenia produkcyjnego tej bazy danych
Szkolenie skupia się zarówno na tworzeniu prostych architektur MongoDB, złożonych z jednej instancji jak i realizacji złożonych klastrów
Szkolenie odbywa się na najnowszej, produkcyjnej wersji MongoDB, ale na życzenie uczestników może być zrealizowane ze szczególnym uwzględnieniem możliwości starszych wersji oraz kompatybilności wstecznej
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
(opcjonalne) Biblioteki klienckie
- Java Driver
- Konfiguracja sterownika
- API sterownika, obsługa BSON
- MongoDB + Spring Data
- CSharp Driver
- Konfiguracja sterownika
- API sterownika, obsługa BSON
- Operacje asynchroniczne
