Szkolenie: Bazy danych NoSQL - MongoDB
Otwarty, nierelacyjny system zarządzania bazą danych typu dokumentowego
- Trenerzy praktycy
- Kameralne grupy
Czas trwania szkolenia:4 dni (32h)
Kod kursu:MONGODB
Bazy danych NoSQL - MongoDB
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
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
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
Wymagania
Podstawowa znajomość teorii baz danych
Podstawowa znajomość formatu JSON
Podstawowa znajomość języka JavaScript
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
Program szkolenia
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