ksiazki24h.pl
wprowadź własne kryteria wyszukiwania książek: (jak szukać?)
Twój koszyk:   0 zł   zamówienie wysyłkowe >>>
Strona główna > opis książki

PRZEWODNIK PO MONGODB WYDAJNA I SKALOWALNA BAZA DANYCH


BRADSHAW S. BRAZIL E. CHODOROW K.

wydawnictwo: HELION , rok wydania 2020, wydanie III

cena netto: 89.00 Twoja cena  84,55 zł + 5% vat - dodaj do koszyka

Przewodnik po MongoDB

Wydajna i skalowalna baza danych


MongoDB jest wieloplatformowym, nierelacyjnym systemem do obsługi baz danych, napisanym w języku C++. Nie przypomina ściśle ustrukturyzowanych relacyjnych baz danych, zamiast tego korzysta z dokumentów w formacie BSON. Ułatwia to bardziej naturalne przetwarzanie informacji w aplikacjach, oczywiście przy zachowaniu możliwości tworzenia hierarchii oraz indeksowania. W ten sposób cały system zyskuje na wydajności, co jest szczególnie istotne przy przetwarzaniu bardzo dużych zbiorów danych. MongoDB umożliwia stosowanie elastycznych modeli danych, uzyskiwanie wysokiego poziomu dostępności i poziome skalowanie.

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.

W książce między innymi:

  • ogólne zasady pracy z MongoDB
  • operacje zapisu i wyszukiwania oraz tworzenie złożonych zapytań
  • indeksy w kolekcjach, agregowanie danych i transakcje
  • lokalny zbiór replik i korzystanie z replikacji
  • konfiguracja elementów klastra
  • monitorowanie systemu, kopie bezpieczeństwa i odtwarzanie bazy MongoDB

Przedmowa 15

CZĘŚĆ I. WPROWADZENIE DO MONGODB 19

1. Wprowadzenie 21

Łatwość użycia 21
Skalowanie 21
Bogactwo funkcji... 23
...bez ograniczania prędkości 23
Filozofia 24

2. Zaczynamy 25

Dokumenty 25
Kolekcje 26
Dynamiczne schematy 26
Nazewnictwo 27
Bazy danych 28
Pobieranie i uruchamianie MongoDB 29
Wprowadzenie do powłoki MongoDB 30
Uruchamianie powłoki 31
Klient MongoDB 31
Podstawowe operacje w powłoce 32
Typy danych 34
Proste typy danych 34
Daty 36
Tablice 37
Zagnieżdżone dokumenty 37
Klucz _id i typ ObjectId 38
Używanie powłoki MongoDB 40
Porady przy używaniu powłoki 40
Uruchamianie skryptów w powłoce 41
Tworzenie pliku .mongorc.js 43
Dostosowywanie znaku zachęty 44
Edytowanie złożonych zmiennych 45
Niewygodne nazwy kolekcji 45

3. Tworzenie, aktualizowanie i usuwanie dokumentów 47

Wstawianie dokumentów 47
Metoda insertMany 47
Sprawdzanie poprawności wstawiania 50
Metoda insert 50
Usuwanie dokumentów 51
Metoda drop 52
Aktualizowanie dokumentów 52
Zastępowanie dokumentów 53
Używanie operatorów aktualizacji 54
Operacje typu upsert 64
Aktualizowanie wielu dokumentów 66
Zwracanie zaktualizowanych dokumentów 67

4. Zapytania 71

Metoda find 71
Wybieranie zwracanych kluczy 72
Ograniczenia 72
Kryteria zapytania 73
Zapytania warunkowe 73
Zapytania LUB 74
Operator $not 75
Zapytania związane z różnymi typami 75
Typ null 75
Wyrażenia regularne 76
Zapytania dotyczące tablic 77
Zapytania do dokumentów zagnieżdżonych 81
Zapytania $where 83
Kursory 84
Limity, pominięcia i sortowanie 85
Unikanie pomijania dużej liczby dokumentów 87
Nieśmiertelne kursory 89

CZĘŚĆ II. PROJEKTOWANIE APLIKACJI 91

5. Indeksy 93

Wprowadzenie do indeksów 93
Tworzenie indeksu 95
Wprowadzenie do indeksów złożonych 98
W jaki sposób MongoDB wybiera indeks? 102
Używanie indeksów złożonych 103
W jaki sposób operatory $ korzystają z indeksów? 120
Indeksowanie obiektów i tablic 130
Liczność indeksu 132
Dane z polecenia explain 132
Kiedy nie używać indeksu? 140
Rodzaje indeksów 141
Indeksy unikalne 141
Indeksy częściowe 143
Administrowanie indeksem 144
Identyfikowanie indeksów 145
Zmienianie indeksów 146

6. Specjalne typy indeksów i kolekcji 147

Indeksy geoprzestrzenne 147
Rodzaje zapytań geoprzestrzennych 148
Używanie indeksów geoprzestrzennych 149
Złożone indeksy geoprzestrzenne 157
Indeksy 2d 157
Indeksy wyszukiwania pełnotekstowego 159
Tworzenie indeksu tekstowego 160
Wyszukiwanie tekstowe 161
Optymalizowanie wyszukiwania pełnotekstowego 163
Wyszukiwanie w innych językach 164
Kolekcje ograniczone 164
Tworzenie kolekcji ograniczonych 166
Wieczne kursory 167
Indeksy o ograniczonym czasie życia 167
Przechowywanie plików za pomocą GridFS 168
Zaczynamy pracę z GridFS - mongofiles 168
Praca z GridFS w sterownikach MongoDB 169
Pod maską 170

7. Wprowadzenie do frameworka agregacji 173

Potoki, etapy i regulatory 173
Praca z etapami - typowe operacje 175
Wyrażenia 179
Etap typu $project 180
Etap typu $unwind 185
Wyrażenia tablicowe 192
Akumulatory 196
Używanie akumulatorów w etapie projekcji 197
Wprowadzenie do grupowania 198
Pole _id w etapie grupowania 202
Etap grupowania i etap projekcji 205
Zapisywanie wyników potoku agregacji do kolekcji 208

8. Transakcje 209

Wprowadzenie do transakcji 209
Definicja standardu ACID 209
Jak używać transakcji? 210
Dostosowywanie limitów transakcji w swojej aplikacji 214
Ograniczenia czasowe i limity wielkości protokołu 215

9. Projektowanie aplikacji 217

Projektowanie schematu danych 217
Wzorce projektowe schematów 218
Normalizacja i denormalizacja 221
Przykłady reprezentacji danych 222
Kardynalność 226
Znajomi, obserwujący i inne nieprzyjemności 226
Optymalizowanie manipulacji na danych 229
Usuwanie starych danych 229
Planowanie baz danych i kolekcji 230
Spójność danych 231
Migrowanie schematów 232
Zarządzanie schematami 233
Kiedy nie używać MongoDB? 233

CZĘŚĆ III. REPLIKACJA 235

10. Konfigurowanie zbioru replik 237

Wprowadzenie do replikacji 237
Konfigurowanie zbioru replik, część 1. 238
Przemyślenia na temat sieci 239
Przemyślenia na temat bezpieczeństwa 239
Konfigurowanie zbioru replik, część 2. 240
Kontrolowanie replikacji 243
Modyfikowanie konfiguracji zbioru replik 248
Jak zaprojektować zbiór? 250
Jak działa wybieranie serwera podstawowego? 252
Opcje konfiguracji elementów zbioru replik 253
Priorytet 254
Ukrywanie serwerów 254
Arbiter wyborów 255
Tworzenie indeksów 257

11. Komponenty zbioru replik 259

Synchronizacja 259
Synchronizacja początkowa 261
Replikacja 263
Jak radzić sobie z przestarzałymi danymi? 263
Żądania heartbeat 263
Stany elementów zbioru 264
Wybory 265
Cofanie zmian 266
Gdy cofanie operacji się nie powiedzie 269

12. Łączenie aplikacji ze zbiorem replik 271

Zachowania związane z łączeniem klienta ze zbiorem replik 271
Oczekiwanie na replikację operacji zapisu 273
Pozostałe wartości klucza "w" 275
Definiowanie gwarancji dla replikacji 275
Gwarantowany jeden serwer na centrum danych 275
Gwarancja większości nieukrytych serwerów 277
Tworzenie innych gwarancji 277
Wysyłanie żądań odczytu do serwerów wtórnych 278
Problemy ze spójnością danych 278
Problemy z obciążeniem serwerów 279
Kiedy warto korzystać z serwerów wtórnych do odczytywania danych 280

13. Administracja 283

Uruchamianie serwerów w trybie samodzielnym 283
Konfiguracja zbioru replik 284
Tworzenie zbioru replik 284
Zmienianie serwerów w zbiorze 285
Tworzenie większych zbiorów 285
Wymuszanie rekonfiguracji 286
Manipulowanie stanem serwera 286
Przekształcanie serwera podstawowego we wtórny 287
Zapobieganie wyborom 287
Monitorowanie replikacji 287
Odczytywanie statusu 288
Wizualizacja grafu replikacji 291
Pętle replikacji 292
Wyłączanie chainingu 292
Wyliczanie opóźnień 293
Zmiana wielkości protokołu operacji 294
Tworzenie indeksów 295
Replikacja budżetowa 296

CZĘŚĆ IV. SHARDING 299

14. Wprowadzenie do shardingu 301

Czym jest sharding? 301
Komponenty klastra 302
Sharding w klastrze jednoserwerowym 303

15. Konfigurowanie shardingu 313

Kiedy stosować sharding? 313
Uruchamianie serwerów 314
Serwery konfiguracji 314
Procesy mongos 315
Tworzenie sharda ze zbioru replik 316
Zwiększanie pojemności 319
Dzielenie danych 320
W jaki sposób MongoDB kontroluje dane klastra? 320
Zakresy kawałków 321
Dzielenie kawałków 323
Równoważenie obciążeń 325
Zestawienia 326
Strumienie zmian 326

16. Wybieranie klucza shardingu 329

Mierzenie sposobu używania kolekcji 329
Rozrysowywanie rozdziału danych 330
Rosnące klucze shardingu 330
Klucze shardingu o losowym rozkładzie 333
Klucze shardingu zależne od lokalizacji 335
Strategie kluczy shardingu 336
Haszowany klucz shardingu 336
Haszowane klucze shardingu dla systemu GridFS 338
Strategia węża strażackiego 338
Hotspoty 339
Reguły i wskazówki dotyczące kluczy shardingu 341
Ograniczenia kluczy shardingu 341
Kardynalność kluczy shardingu 343
Kontrolowanie rozdziału danych 343
Używanie klastra z wieloma bazami danych i kolekcjami 343
Sharding manualny 345

17. Administrowanie shardingiem 347

Sprawdzanie aktualnego stanu 347
Przeglądanie podsumowania za pomocą metody sh.status() 347
Przeglądanie informacji o konfiguracji 349
Kontrolowanie połączeń sieciowych 355
Pobieranie statystyk dotyczących połączeń 355
Ograniczanie liczby połączeń 362
Administrowanie serwerem 363
Dodawanie serwerów 363
Zmienianie serwerów w shardzie 363
Usuwanie sharda 364
Równoważenie danych 367
Proces równoważący 367
Zmiana wielkości kawałka 368
Przenoszenie kawałków 369
Wielkie kawałki 371
Odświeżanie konfiguracji 374

CZĘŚĆ V. ADMINISTROWANIE APLIKACJĄ 375

18. Kontrolowanie działania aplikacji 377

Przeglądanie aktualnych operacji 377
Wyszukiwanie problematycznych operacji 380
Zatrzymywanie operacji 380
Fałszywe alarmy 381
Zapobieganie powstawaniu fantomowych operacji 381
Używanie profilera systemowego 382
Wyliczanie wielkości 385
Dokumenty 385
Kolekcje 386
Bazy danych 390
Używanie narzędzi mongotop i mongostat 391

19. Wprowadzenie do bezpieczeństwa MongoDB 395

Uwierzytelnianie i autoryzacja 395
Mechanizmy uwierzytelniania 395
Autoryzacja 396
Stosowanie certyfikatów X.509 do uwierzytelniania serwerów i klientów 398
Samouczek uwierzytelniania i szyfrowania komunikacji w MongoDB 400
Tworzenie centrum certyfikacji 400
Generowanie i podpisywanie certyfikatów serwerów 405
Generowanie i podpisywanie certyfikatów klientów 406
Uruchamianie zbioru replik bez włączonego uwierzytelniania i autoryzacji 406
Tworzenie użytkownika administracyjnego 407
Ponowne uruchomienie zbioru replik z włączonym uwierzytelnianiem i autoryzacją 408

20. Trwałość danych 411

Trwałość danych na poziomie serwera dzięki mechanizmowi księgowania 411
Trwałość danych na poziomie klastra dzięki opcjom "write concern" 413
Opcje "w" i "wtimeout" 413
Używanie opcji "j" w dokumencie writeConcern 414
Trwałość danych na poziomie klastra dzięki opcjom "read concern" 415
Trwałość danych w transakcjach dzięki opcjom "write concern" 415
Czego MongoDB nie gwarantuje? 416
Poszukiwanie uszkodzeń danych 417

CZĘŚĆ VI. ADMINISTROWANIE SERWEREM 419

21. Konfigurowanie MongoDB w środowisku produkcyjnym 421

Uruchamianie z wiersza poleceń 421
Konfiguracja zapisana w pliku 425
Zatrzymywanie serwera MongoDB 426
Bezpieczeństwo 426
Szyfrowanie danych 427
Połączenia SSL 428
Protokołowanie 428

22. Monitorowanie MongoDB 431

Monitorowanie wykorzystania pamięci 431
Wprowadzenie do pamięci komputerów 431
Kontrolowanie wykorzystania pamięci 432
Kontrolowanie liczby błędów stron 433
Parametr I/O wait 435
Wyliczanie wielkości zbioru roboczego 435
Kilka przykładów zbiorów roboczych 437
Kontrolowanie wydajności 437
Kontrolowanie wolnej przestrzeni na dysku 439
Monitorowanie procesu replikacji 439

23. Tworzenie kopii zapasowych 443

Metody tworzenia kopii zapasowych 443
Tworzenie kopii zapasowej serwera 444
Migawka systemu plików 444
Kopiowanie plików z danymi 447
Używanie narzędzia mongodump 449
Szczególny przypadek kopii zapasowej zbioru replik 451
Szczególny przypadek kopii zapasowej klastra shardów 452
Tworzenie kopii zapasowej całego klastra i jej odtwarzanie 453
Tworzenie kopii zapasowej pojedynczego sharda i jej odtwarzanie 453

24. Wdrożenia MongoDB 455

Projektowanie systemu 455
Wybieranie nośników danych 455
Zalecane konfiguracje macierzy RAID 456
Procesor 457
System operacyjny 457
Przestrzeń wymiany 458
System plików 458
Wirtualizacja 459
Nadmierne używanie pamięci 459
Tajemnicza pamięć 459
Problemy z dyskami sieciowymi 459
Używanie dysków niesieciowych 461
Konfigurowanie ustawień systemowych 461
Wyłączanie opcji NUMA 461
Opcja readahead 463
Wyłączanie opcji THP 464
Wybieranie algorytmu planisty dysku 465
Wyłączanie śledzenia czasu dostępu 465
Modyfikowanie limitów 466
Konfigurowanie sieci 467
Porządkowanie systemu 469
Synchronizowanie zegarów 469
Proces OOM killer 469
Wyłączanie zadań okresowych 470

A. Instalowanie MongoDB 471

Wybieranie wersji 471
Instalowanie w systemie Windows 472
Instalowanie jako usługa 473
Instalowanie w systemach POSIX (Linux i Mac OS X) 473
Instalowanie za pomocą menedżera pakietów 474

B. Wewnętrzne elementy MongoDB 475

BSON 475
Protokół komunikacji 476
Pliki danych 476
Przestrzenie nazw 478
Mechanizm zapisywania danych WiredTiger 478

480 stron, Format: 17.0x23.0cm, oprawa miękka

Po otrzymaniu zamówienia poinformujemy,
czy wybrany tytuł polskojęzyczny lub anglojęzyczny jest aktualnie na półce księgarni.

 
Wszelkie prawa zastrzeżone PROPRESS sp. z o.o. 2012-2022