Studium przypadku: MongoDB

Koncepcje NoSQL

Miriam Antona

Software engineer

MongoDB — przegląd

MongoDB logo

  • Popularna dokumentowa baza danych
  • Format BSON (binarny JSON)
Koncepcje NoSQL

MongoDB — funkcjonalności

  • MongoDB Query Language (MQL)
db.users.find({ "address.zipcode" : "10245" })
  • Natywne sterowniki dla języków programowania: C#, Java, Python, Scala i innych
  • Indeksy na dowolnym polu
  • Transakcje ACID (niepodzielność, spójność, izolacja, trwałość)
  • Złączenia w zapytaniach
Koncepcje NoSQL

MongoDB — funkcjonalności

  • Skalowanie horyzontalne
    • natywny sharding
    • dodawanie i przenoszenie shardów
  • Replikacja
    • do 50 kopii danych
Koncepcje NoSQL

MongoDB — produkty

  • MongoDB Compass:
    • Bezpłatny interfejs graficzny (GUI)
    • Przeglądanie schematu, wizualne tworzenie zapytań...
  • MongoDB Atlas:
    • Usługa chmurowa
    • AWS, Azure, Google Cloud
  • MongoDB Enterprise Advanced:
    • Uruchamianie MongoDB we własnej infrastrukturze
Koncepcje NoSQL

MongoDB — produkty

  • MongoDB Atlas Lake:
    • Zapytania i analiza danych
    • AWS S3 i MongoDB Atlas
    • MQL
  • MongoDB Charts:
    • Wizualizacje danych
  • Realm Mobile Database:
    • Lokalne przechowywanie danych na iOS lub Androidzie
Koncepcje NoSQL

MongoDB — popularne zastosowania

  • Aplikacje z jednolitym widokiem danych: usługi finansowe, administracja, zaawansowane technologie, handel...
  • Gaming: profile graczy, rankingi...
  • Katalogi: usługi finansowe, administracja, zaawansowane technologie, handel...
  • Analityka w czasie rzeczywistym
  • Zarządzanie treścią
  • Internet rzeczy
Koncepcje NoSQL

MongoDB — klienci

Logos of some MongoDB customers

Koncepcje NoSQL

Studium przypadku: Shutterfly — tło

  • Internetowy serwis fotograficzny
    • Udostępnianie spersonalizowanych albumów zdjęć
    • Produkty z nadrukowanymi fotografiami
  • Miliony klientów
  • Ponad sześć miliardów zdjęć

Shutterfly logo

Koncepcje NoSQL

Studium przypadku: Shutterfly — problem i rozwiązanie

  • Gwałtowny wzrost ilości danych
  • Ograniczenia wydajności Oracle
  • Długi czas tworzenia aplikacji
  • Niewystarczająca wydajność aplikacji
  • Oracle stał się zbyt kosztowny
  • Wybór MongoDB
Koncepcje NoSQL

Studium przypadku: Shutterfly — wyniki

  • Poprawa wydajności
    • Wstawienia: 400 ms → 2 ms
  • Skalowanie horyzontalne
  • Elastyczny schemat → szybszy rozwój
    • Tagi, komentarze itp. łatwe do wdrożenia
  • Nowe wzorce zapytań
  • Redukcja kosztów
Koncepcje NoSQL

Studium przypadku: Shutterfly — wyniki

  • Poprawa wydajności
    • Wstawienia: 400 ms → 2 ms
  • Skalowanie horyzontalne
  • Elastyczny schemat → szybszy rozwój
    • Tagi, komentarze itp. łatwe do wdrożenia
  • Nowe wzorce zapytań
  • Redukcja kosztów
1 https://www.mongodb.com/who-uses-mongodb
Koncepcje NoSQL

Czas na praktykę!

Koncepcje NoSQL

Preparing Video For Download...