Mongo DB: zarządzanie bazą danych w chmurze
Tradycyjne podejście do przetwarzania danych w przypadku systemów zarządzania relacyjną bazą danych nie we wszystkich przypadkach jest najbardziej optymalne. Konieczność przechowywania coraz bardziej rozbudowanych i skomplikowanych danych, oraz próba ich opisania w postaci tabel i relacji może prowadzić do wolnych wielotabelowych zapytań i rozrośniętych indeksów. W niektórych przypadkach, zamiast korzystać z narzędzia uniwersalnego, warto sięgnąć po system specjalistyczny. Jednym z takich systemów oferowanych w CloudPortal jest nierelacyjny system zarządzania bazą danych MongoDB.
W przypadku MongoDB każdy rekord to dokument rozumiany, jako struktura danych złożona z pól i par wartości, który przypomina dokumenty w formacie JSON. Pola w dokumencie można porównać do kolumn w relacyjnych bazach danych a dokumenty do rekordów przechowywanych w kolekcjach zamiast w tabelach. W odróżnieniu od rekordów w tabelach dokumenty w kolekcji mogą posiadać różny zestaw pól, który można dowolnie modyfikować dla każdego dokumentu podczas pracy z bazą. Kluczową decyzją przy projektowaniu modelu danych dla aplikacji opartych o MongoDB jest określenie struktury dokumentów, oraz zdecydowanie, w jaki sposób aplikacja reprezentuje relacje pomiędzy danymi. MongoDB daje możliwość wykorzystania referencji, które przechowują relację pomiędzy danymi poprzez składowanie linku z jednego dokumentu do drugiego – w tym przypadku można mówić o znormalizowanym modelu danych. Istnieje również możliwość pracy z zagnieżdżonymi dokumentami, które w odróżnieniu od poprzedniego modelu pozwalają na przedstawienie relacji pomiędzy danymi poprzez składowanie jednego dokumentu w polu, lub tablicy innego dokumentu. Taki zdenormalizowany model danych pozwala aplikacji na uzyskanie i manipulowanie powiązanymi danymi w jednej operacji bazodanowej.
Do głównych cech związanych z wydajnością i dostępnością MongoDB należą m.in.:
Wydajność
- wsparcie modelu zagnieżdżonych danych ogranicza aktywność I/O systemu bazodanowego,
- indeksy pozwalają na szybsze wykonywanie zapytań i umożliwiają dołączanie kluczy z zagnieżdżonych dokumentów.
Wysoka dostępność
- zestaw replikacyjny to zbiór serwerów MongoDB, które utrzymują ten sam zbiór danych, zapewniając nadmiarowość i zwiększając dostępność,
- automatyczny failover.
Automatyczne skalowanie
- wykorzystanie automatycznego mechanizmu shardów rozkłada dane pomiędzy serwery w klastrze,
- zestaw replikacyjny umożliwia wykonywanie szybkich operacji czytania dla instalacji mających sprostać potrzebom wysokiego obciążenia.
MongoDB pod względem sposobu pracy z danymi jest rozwiązaniem wyspecjalizowanym, ale może być wykorzystanie w wielu obszarach, t.j. systemach zarządzania treścią (Content Management System), aplikacjach mobilnych, grach, rozwiązaniach e-commerce, archiwizacji, czy logowania.
Dla pełnego wykorzystania możliwości pracy z danymi w bazie, MongoDB udostępnia sterowniki i dokumentację dla najpopularniejszych platform programistycznych, m.in. C#, Java, Node.js, PHP, Python, Ruby.
Podobne artykuły
Mechanizmy wysokiej dostępności relacyjnych baz danych w CoudPortal.pl
Wszystkie aplikacje udostępnianie w CloudPortal ze względu na elastyczną architekturę platformy w dużym stopniu wykorzystują dodatkowe usługi. Rozproszone systemy plików, bazy SQL i NOSQL, usługi kolejkowania, pamięci podręczne sesji i wiele innych mają zagwarantować szeroką gamę możliwości dla tworzonych i udostępnianych przez platformę rozwiązań.
Aplikacje Ruby na platformie CloudPortal
CloudPortal jest elastyczną platformą PaaS, która umożliwia tworzenie i utrzymywanie w jednym środowisku aplikacji przygotowanych w najpopularniejszych językach programowania i korzystających z szerokiej gamy usług. Jednym ze wspieranych środowisk uruchomieniowych jest konfiguracja wspierająca aplikacje Ruby, Rack, Rails i Sinatra.
7 powodów dla których warto wybrać CloudPortal jako platformę dla aplikacji
W dzisiejszych czasach korzyści z chmury obliczeniowej wydają się oczywiste. Z cloud computingu mogą również skorzystać firmy tworzące oprogramowanie.