Plan 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
Podstawowe zapytania oraz struktura danych
Typy przechowywanych danych
Insert
Save
Remove
Update
Find / FindOne
Rola i właściwości kursora wyniku zapytania
Sortowanie, skip, limit
Selektory zapytań
Tworzenie warunków logicznych
Zaawansowane zapytania
Mechanizm projekcji danych
$regex
Operacje na tablicach oraz setach
FindAndModify oraz operator $inc
Operator pozycji oraz ArrayFilter
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
Walidacja dokumentów
Tworzenie oraz modyfikacja prostych walidatorów
Poziomy walidacji
Akcje walidacji
Walidacja z wykorzystaniem JsonSchema
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
MapReduce
Czym jest MapReduce?
Struktura zapytania MapReduce
Funkcja mapująca
Funkcja redukująca
Funkcja finalizująca
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
GridFS
Przechowywanie danych binarnych w MongoDB
Metadane i kawałki
Użycie mongofiles
Przesłanki do używania GridFS
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
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
Change streams
Wzorzec publish-subscribe
Subskrypcja zmian w MongoDB
Format zwracanego dokumentu
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
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
JavaDriver
Konfiguracja sterownika
API sterownika, obsługa BSON
MongoDB + Spring Data
CSharpDriver
Konfiguracja sterownika
API sterownika, obsługa BSON
Operacje asnchroniczne
Wymagania
- Experience working with MongoDB
- Programming experience is helpful but not required.
-
Audience
- Database administrators
- Systems administrators
- Operations and devops professionals