Przewodnik po MongoDB

Book description

Ten praktyczny przewodnik jest przeznaczony dla użytkowników bazy MongoDB w wersji 4.2. W przystępny i konkretny sposób opisuje zalety stosowania dokumentowych baz danych, równocześnie wskazuje zaawansowane metody konfiguracji systemu oraz możliwe zastosowania w różnych projektach. Książka zainteresuje zarówno użytkowników i administratorów MongoDB, jak i programistów tworzących złożone aplikacje. Przedstawia kwestie tworzenia zapytań, indeksów, agregacji, transakcji, zbiorów replik, zarządzania systemem, shardingu i administrowania danymi, trwałości danych, monitorowania systemu oraz jego zabezpieczenia. Znalazło się tu także wprowadzenie do pracy z MongoDB, omówiono też zasady pracy z klastrem shardów oraz administrowania aplikacją i serwerem bazy MongoDB.

Table of contents

  1. Przedmowa
    1. Jak zorganizowana jest ta książka?
      1. Rozpoczęcie pracy z MongoDB
      2. Praca z MongoDB
      3. Replikacja
      4. Sharding
      5. Administrowanie aplikacją
      6. Administrowanie serwerem
      7. Dodatki
    2. Konwencje używane w tej książce
    3. Używanie przykładowego kodu
  2. Część I Wprowadzenie do MongoDB
  3. Rozdział 1. Wprowadzenie
    1. Łatwość użycia
    2. Skalowanie
    3. Bogactwo funkcji…
    4. …bez ograniczania prędkości
    5. Filozofia
  4. Rozdział 2. Zaczynamy
    1. Dokumenty
    2. Kolekcje
      1. Dynamiczne schematy
      2. Nazewnictwo
        1. Podkolekcje
    3. Bazy danych
    4. Pobieranie i uruchamianie MongoDB
    5. Wprowadzenie do powłoki MongoDB
      1. Uruchamianie powłoki
      2. Klient MongoDB
      3. Podstawowe operacje w powłoce
        1. Tworzenie
        2. Odczyt
        3. Aktualizowanie
        4. Usuwanie
    6. Typy danych
      1. Proste typy danych
      2. Daty
      3. Tablice
      4. Zagnieżdżone dokumenty
      5. Klucz _id i typ ObjectId
        1. Typ ObjcetId
        2. Automatyczne generowanie wartości dla kluczy _id
    7. Używanie powłoki MongoDB
      1. Porady przy używaniu powłoki
      2. Uruchamianie skryptów w powłoce
      3. Tworzenie pliku .mongorc.js
      4. Dostosowywanie znaku zachęty
      5. Edytowanie złożonych zmiennych
      6. Niewygodne nazwy kolekcji
  5. Rozdział 3. Tworzenie, aktualizowanie i usuwanie dokumentów
    1. Wstawianie dokumentów
      1. Metoda insertMany
      2. Sprawdzanie poprawności wstawiania
      3. Metoda insert
    2. Usuwanie dokumentów
      1. Metoda drop
    3. Aktualizowanie dokumentów
      1. Zastępowanie dokumentów
      2. Używanie operatorów aktualizacji
        1. Jak używać operatora "$set"
        2. Inkrementowanie i dekrementowanie
        3. Operatory tablicowe
          1. Dodawanie elementów
          2. Używanie tablic jako zbiorów
          3. Usuwanie elementów
          4. Pozycyjne modyfikacje w tablicy
          5. Aktualizowanie za pomocą filtrów tablic
      3. Operacje typu upsert
        1. Pomocnicza funkcja powłoki — save
      4. Aktualizowanie wielu dokumentów
      5. Zwracanie zaktualizowanych dokumentów
  6. Rozdział 4. Zapytania
    1. Metoda find
      1. Wybieranie zwracanych kluczy
      2. Ograniczenia
    2. Kryteria zapytania
      1. Zapytania warunkowe
      2. Zapytania LUB
      3. Operator $not
    3. Zapytania związane z różnymi typami
      1. Typ null
      2. Wyrażenia regularne
      3. Zapytania dotyczące tablic
        1. Operator "$all"
        2. Operator "$size"
        3. Operator "$slice"
        4. Zwracanie pasujących elementów tablicy
        5. Współpraca tablic i zapytań o zakres
      4. Zapytania do dokumentów zagnieżdżonych
    4. Zapytania $where
    5. Kursory
      1. Limity, pominięcia i sortowanie
        1. Kolejność porównań
      2. Unikanie pomijania dużej liczby dokumentów
        1. Dzielenie wyników na strony bez używania funkcji skip
        2. Wyszukiwanie losowego dokumentu
      3. Nieśmiertelne kursory
  7. Część II Projektowanie aplikacji
  8. Rozdział 5. Indeksy
    1. Wprowadzenie do indeksów
      1. Tworzenie indeksu
      2. Wprowadzenie do indeksów złożonych
      3. W jaki sposób MongoDB wybiera indeks?
      4. Używanie indeksów złożonych
        1. Wybieranie kierunku sortowania dla kluczy
        2. Używanie pokrytych zapytań
        3. Indeksy niejawne
      5. W jaki sposób operatory $ korzystają z indeksów?
        1. Operatory nieefektywne
        2. Zakresy
        3. Zapytania LUB
      6. Indeksowanie obiektów i tablic
        1. Indeksowanie zagnieżdżonych dokumentów
        2. Indeksowanie tablic
        3. Implikacje indeksów wielokluczowych
      7. Liczność indeksu
    2. Dane z polecenia explain
    3. Kiedy nie używać indeksu?
    4. Rodzaje indeksów
      1. Indeksy unikalne
        1. Unikalne indeksy złożone
        2. Usuwanie duplikatów
      2. Indeksy częściowe
    5. Administrowanie indeksem
      1. Identyfikowanie indeksów
      2. Zmienianie indeksów
  9. Rozdział 6. Specjalne typy indeksów i kolekcji
    1. Indeksy geoprzestrzenne
      1. Rodzaje zapytań geoprzestrzennych
      2. Używanie indeksów geoprzestrzennych
        1. Geometria dwuwymiarowa i sferyczna w zapytaniach
        2. Zniekształcenia
        3. Poszukiwanie restauracji
        4. Przeszukiwanie danych
        5. Poszukiwanie aktualnej dzielnicy
        6. Wyszukiwanie wszystkich restauracji w dzielnicy
        7. Wyszukiwanie restauracji w pewnej odległości
      3. Złożone indeksy geoprzestrzenne
      4. Indeksy 2d
    2. Indeksy wyszukiwania pełnotekstowego
      1. Tworzenie indeksu tekstowego
      2. Wyszukiwanie tekstowe
      3. Optymalizowanie wyszukiwania pełnotekstowego
      4. Wyszukiwanie w innych językach
    3. Kolekcje ograniczone
      1. Tworzenie kolekcji ograniczonych
      2. Wieczne kursory
    4. Indeksy o ograniczonym czasie życia
    5. Przechowywanie plików za pomocą GridFS
      1. Zaczynamy pracę z GridFS — mongofiles
      2. Praca z GridFS w sterownikach MongoDB
      3. Pod maską
  10. Rozdział 7. Wprowadzenie do frameworka agregacji
    1. Potoki, etapy i regulatory
    2. Praca z etapami — typowe operacje
    3. Wyrażenia
      1. Etap typu $project
      2. Etap typu $unwind
    4. Wyrażenia tablicowe
    5. Akumulatory
      1. Używanie akumulatorów w etapie projekcji
    6. Wprowadzenie do grupowania
      1. Pole _id w etapie grupowania
      2. Etap grupowania i etap projekcji
    7. Zapisywanie wyników potoku agregacji do kolekcji
  11. Rozdział 8. Transakcje
    1. Wprowadzenie do transakcji
      1. Definicja standardu ACID
    2. Jak używać transakcji?
    3. Dostosowywanie limitów transakcji w swojej aplikacji
      1. Ograniczenia czasowe i limity wielkości protokołu
  12. Rozdział 9. Projektowanie aplikacji
    1. Projektowanie schematu danych
      1. Wzorce projektowe schematów
    2. Normalizacja i denormalizacja
      1. Przykłady reprezentacji danych
      2. Kardynalność
      3. Znajomi, obserwujący i inne nieprzyjemności
        1. Efekt Wila Wheatona
    3. Optymalizowanie manipulacji na danych
      1. Usuwanie starych danych
    4. Planowanie baz danych i kolekcji
    5. Spójność danych
    6. Migrowanie schematów
    7. Zarządzanie schematami
    8. Kiedy nie używać MongoDB?
  13. Część III Replikacja
  14. Rozdział 10. Konfigurowanie zbioru replik
    1. Wprowadzenie do replikacji
    2. Konfigurowanie zbioru replik, część 1.
    3. Przemyślenia na temat sieci
    4. Przemyślenia na temat bezpieczeństwa
    5. Konfigurowanie zbioru replik, część 2.
    6. Kontrolowanie replikacji
    7. Modyfikowanie konfiguracji zbioru replik
    8. Jak zaprojektować zbiór?
      1. Jak działa wybieranie serwera podstawowego?
    9. Opcje konfiguracji elementów zbioru replik
      1. Priorytet
      2. Ukrywanie serwerów
      3. Arbiter wyborów
        1. Używaj co najwyżej jednego arbitra
        2. Wady stosowania arbitra
      4. Tworzenie indeksów
  15. Rozdział 11. Komponenty zbioru replik
    1. Synchronizacja
      1. Synchronizacja początkowa
      2. Replikacja
      3. Jak radzić sobie z przestarzałymi danymi?
    2. Żądania heartbeat
      1. Stany elementów zbioru
    3. Wybory
    4. Cofanie zmian
      1. Gdy cofanie operacji się nie powiedzie
  16. Rozdział 12. Łączenie aplikacji ze zbiorem replik
    1. Zachowania związane z łączeniem klienta ze zbiorem replik
    2. Oczekiwanie na replikację operacji zapisu
      1. Pozostałe wartości klucza "w"
    3. Definiowanie gwarancji dla replikacji
      1. Gwarantowany jeden serwer na centrum danych
      2. Gwarancja większości nieukrytych serwerów
      3. Tworzenie innych gwarancji
    4. Wysyłanie żądań odczytu do serwerów wtórnych
      1. Problemy ze spójnością danych
      2. Problemy z obciążeniem serwerów
      3. Kiedy warto korzystać z serwerów wtórnych do odczytywania danych
  17. Rozdział 13. Administracja
    1. Uruchamianie serwerów w trybie samodzielnym
    2. Konfiguracja zbioru replik
      1. Tworzenie zbioru replik
      2. Zmienianie serwerów w zbiorze
      3. Tworzenie większych zbiorów
      4. Wymuszanie rekonfiguracji
    3. Manipulowanie stanem serwera
      1. Przekształcanie serwera podstawowego we wtórny
      2. Zapobieganie wyborom
    4. Monitorowanie replikacji
      1. Odczytywanie statusu
      2. Wizualizacja grafu replikacji
      3. Pętle replikacji
      4. Wyłączanie chainingu
      5. Wyliczanie opóźnień
      6. Zmiana wielkości protokołu operacji
      7. Tworzenie indeksów
      8. Replikacja budżetowa
  18. Część IV Sharding
  19. Rozdział 14. Wprowadzenie do shardingu
    1. Czym jest sharding?
      1. Komponenty klastra
    2. Sharding w klastrze jednoserwerowym
  20. Rozdział 15. Konfigurowanie shardingu
    1. Kiedy stosować sharding?
    2. Uruchamianie serwerów
      1. Serwery konfiguracji
      2. Procesy mongos
      3. Tworzenie sharda ze zbioru replik
      4. Zwiększanie pojemności
      5. Dzielenie danych
    3. W jaki sposób MongoDB kontroluje dane klastra?
      1. Zakresy kawałków
      2. Dzielenie kawałków
    4. Równoważenie obciążeń
    5. Zestawienia
    6. Strumienie zmian
  21. Rozdział 16. Wybieranie klucza shardingu
    1. Mierzenie sposobu używania kolekcji
    2. Rozrysowywanie rozdziału danych
      1. Rosnące klucze shardingu
      2. Klucze shardingu o losowym rozkładzie
      3. Klucze shardingu zależne od lokalizacji
    3. Strategie kluczy shardingu
      1. Haszowany klucz shardingu
      2. Haszowane klucze shardingu dla systemu GridFS
      3. Strategia węża strażackiego
      4. Hotspoty
    4. Reguły i wskazówki dotyczące kluczy shardingu
      1. Ograniczenia kluczy shardingu
      2. Kardynalność kluczy shardingu
    5. Kontrolowanie rozdziału danych
      1. Używanie klastra z wieloma bazami danych i kolekcjami
      2. Sharding manualny
  22. Rozdział 17. Administrowanie shardingiem
    1. Sprawdzanie aktualnego stanu
      1. Przeglądanie podsumowania za pomocą metody sh.status()
      2. Przeglądanie informacji o konfiguracji
        1. Kolekcja config.shards
        2. Kolekcja config.databases
        3. Kolekcja config.collections
        4. Kolekcja config.chunks
        5. Kolekcja config.changelog
        6. Kolekcja config.settings
    2. Kontrolowanie połączeń sieciowych
      1. Pobieranie statystyk dotyczących połączeń
      2. Ograniczanie liczby połączeń
    3. Administrowanie serwerem
      1. Dodawanie serwerów
      2. Zmienianie serwerów w shardzie
        1. Zamiana sharda z pojedynczego serwera na zbiór replik
      3. Usuwanie sharda
    4. Równoważenie danych
      1. Proces równoważący
      2. Zmiana wielkości kawałka
      3. Przenoszenie kawałków
      4. Wielkie kawałki
        1. Przenoszenie wielkich kawałków
        2. Zapobieganie powstawaniu wielkich kawałków
      5. Odświeżanie konfiguracji
  23. Część V Administrowanie aplikacją
  24. Rozdział 18. Kontrolowanie działania aplikacji
    1. Przeglądanie aktualnych operacji
      1. Wyszukiwanie problematycznych operacji
      2. Zatrzymywanie operacji
      3. Fałszywe alarmy
      4. Zapobieganie powstawaniu fantomowych operacji
    2. Używanie profilera systemowego
    3. Wyliczanie wielkości
      1. Dokumenty
      2. Kolekcje
      3. Bazy danych
    4. Używanie narzędzi mongotop i mongostat
  25. Rozdział 19. Wprowadzenie do bezpieczeństwa MongoDB
    1. Uwierzytelnianie i autoryzacja
      1. Mechanizmy uwierzytelniania
      2. Autoryzacja
      3. Stosowanie certyfikatów X.509 do uwierzytelniania serwerów i klientów
    2. Samouczek uwierzytelniania i szyfrowania komunikacji w MongoDB
      1. Tworzenie centrum certyfikacji
        1. Generowanie głównego centrum certyfikacji
        2. Tworzenie pośredniego centrum certyfikacji na potrzeby podpisywania certyfikatów
      2. Generowanie i podpisywanie certyfikatów serwerów
      3. Generowanie i podpisywanie certyfikatów klientów
      4. Uruchamianie zbioru replik bez włączonego uwierzytelniania i autoryzacji
      5. Tworzenie użytkownika administracyjnego
      6. Ponowne uruchomienie zbioru replik z włączonym uwierzytelnianiem i autoryzacją
  26. Rozdział 20. Trwałość danych
    1. Trwałość danych na poziomie serwera dzięki mechanizmowi księgowania
    2. Trwałość danych na poziomie klastra dzięki opcjom „write concern”
      1. Opcje "w" i "wtimeout"
      2. Używanie opcji "j" w dokumencie writeConcern
    3. Trwałość danych na poziomie klastra dzięki opcjom „read concern”
    4. Trwałość danych w transakcjach dzięki opcjom „write concern”
    5. Czego MongoDB nie gwarantuje?
    6. Poszukiwanie uszkodzeń danych
  27. Część VI Administrowanie serwerem
  28. Rozdział 21. Konfigurowanie MongoDB w środowisku produkcyjnym
    1. Uruchamianie z wiersza poleceń
      1. Konfiguracja zapisana w pliku
    2. Zatrzymywanie serwera MongoDB
    3. Bezpieczeństwo
      1. Szyfrowanie danych
      2. Połączenia SSL
    4. Protokołowanie
  29. Rozdział 22. Monitorowanie MongoDB
    1. Monitorowanie wykorzystania pamięci
      1. Wprowadzenie do pamięci komputerów
      2. Kontrolowanie wykorzystania pamięci
      3. Kontrolowanie liczby błędów stron
      4. Parametr I/O wait
    2. Wyliczanie wielkości zbioru roboczego
      1. Kilka przykładów zbiorów roboczych
    3. Kontrolowanie wydajności
    4. Kontrolowanie wolnej przestrzeni na dysku
    5. Monitorowanie procesu replikacji
  30. Rozdział 23. Tworzenie kopii zapasowych
    1. Metody tworzenia kopii zapasowych
    2. Tworzenie kopii zapasowej serwera
      1. Migawka systemu plików
        1. Procedura tworzenia i odtwarzania kopii zapasowych z migawek
      2. Kopiowanie plików z danymi
      3. Używanie narzędzia mongodump
        1. Przenoszenie kolekcji i baz danych za pomocą narzędzi mongodump i mongorestore
        2. Problemy administracyjne wynikające z indeksów unikalnych
    3. Szczególny przypadek kopii zapasowej zbioru replik
    4. Szczególny przypadek kopii zapasowej klastra shardów
      1. Tworzenie kopii zapasowej całego klastra i jej odtwarzanie
      2. Tworzenie kopii zapasowej pojedynczego sharda i jej odtwarzanie
  31. Rozdział 24. Wdrożenia MongoDB
    1. Projektowanie systemu
      1. Wybieranie nośników danych
      2. Zalecane konfiguracje macierzy RAID
      3. Procesor
      4. System operacyjny
      5. Przestrzeń wymiany
      6. System plików
    2. Wirtualizacja
      1. Nadmierne używanie pamięci
      2. Tajemnicza pamięć
      3. Problemy z dyskami sieciowymi
      4. Używanie dysków niesieciowych
    3. Konfigurowanie ustawień systemowych
      1. Wyłączanie opcji NUMA
      2. Opcja readahead
      3. Wyłączanie opcji THP
      4. Wybieranie algorytmu planisty dysku
      5. Wyłączanie śledzenia czasu dostępu
      6. Modyfikowanie limitów
    4. Konfigurowanie sieci
    5. Porządkowanie systemu
      1. Synchronizowanie zegarów
      2. Proces OOM killer
      3. Wyłączanie zadań okresowych
  32. Dodatek A Instalowanie MongoDB
    1. Wybieranie wersji
    2. Instalowanie w systemie Windows
      1. Instalowanie jako usługa
    3. Instalowanie w systemach POSIX (Linux i Mac OS X)
      1. Instalowanie za pomocą menedżera pakietów
  33. Dodatek B Wewnętrzne elementy MongoDB
    1. BSON
    2. Protokół komunikacji
    3. Pliki danych
    4. Przestrzenie nazw
    5. Mechanizm zapisywania danych WiredTiger
      1. O autorach
      2. Kolofon

Product information

  • Title: Przewodnik po MongoDB
  • Author(s): Eoin Brazil Shannon Bradshaw Kristina Chodorow
  • Release date: November 2020
  • Publisher(s): Helion
  • ISBN: 9788328365339