Ponieważ MongoDB jest ulubioną bazą danych wielu programistów, nie jest zaskoczeniem, że wsparcie społeczności jest doskonałe. Możesz szybko znaleźć odpowiedzi na większość swoich problemów w witrynach wiedzy, takich jak Stack Overflow, ale społeczność tworzy również wiele narzędzi, skryptów i frameworków wokół MongoDB.
ClusterControl jest częścią narzędzi społecznościowych, które umożliwiają wdrażanie, monitorowanie, zarządzanie i skalowanie dowolnej topologii MongoDB. ClusterControl został zaprojektowany z myślą o cyklu życia bazy danych, ale oczywiście nie może obejmować wszystkich aspektów cyklu rozwoju. Ten wpis na blogu obejmie wybór narzędzi społecznościowych, które można wykorzystać jako uzupełnienie ClusterControl w zarządzaniu cyklem rozwoju.
Zarządzanie schematem
Ból związany ze zmianami schematów w konwencjonalnych RDBMS był jednym z czynników napędzających tworzenie MongoDB:wszyscy cierpieliśmy z powodu boleśnie powolnych lub nieudanych migracji schematów. Dlatego MongoDB został opracowany z bezschematycznym projektem dokumentu. Pozwala to na zmianę schematu w dowolnym momencie, bez blokowania Cię przez bazę danych.
Zmiany schematu są zazwyczaj dokonywane za każdym razem, gdy trwa rozwój aplikacji. Dodawanie nowych funkcji do istniejących modułów lub tworzenie nowych modułów może wiązać się z utworzeniem innej wersji schematu. Również optymalizacje schematu i wydajności mogą tworzyć nowe wersje schematów.
Mimo że wiele osób powie, że genialne jest niepowstrzymywanie się od bazy danych, wiąże się to również z kilkoma problemami:ponieważ stare dane nie są migrowane do nowego projektu schematu, Twoja aplikacja powinna być w stanie poradzić sobie z każdą wersją schematu. mieć w swojej bazie danych. Alternatywnie możesz zaktualizować wszystkie (stare) dane za pomocą nowszego schematu zaraz po wdrożeniu aplikacji.
Wszystkie narzędzia omówione w tej sekcji będą bardzo pomocne w rozwiązywaniu tych problemów ze schematem.
Kolekcja Meteor2
Moduł kolekcji Meteor2 zapewni walidację schematu zarówno po stronie klienta, jak i serwera. Zapewni to, że wszystkie dane zostaną zapisane zgodnie ze zdefiniowanym schematem. Moduł będzie tylko reaktywny, więc za każdym razem, gdy dane nie zostaną zapisane zgodnie ze schematem, zwrócone zostanie ostrzeżenie.
Mongusta
Mongoose to oprogramowanie pośredniczące Node.js do modelowania i walidacji schematu. Definicja schematu jest umieszczana w aplikacji Node.js, co pozwoli Mongoose działać jako ORM. Mongoose nie przeniesie istniejących danych do nowej definicji schematu.
Schemat MongoDB
Do tej pory rozmawialiśmy tylko o zmianach w schemacie, więc nadszedł czas na wprowadzenie schematu MongoDB. Schemat MongoDB to analizator schematu, który pobierze (losową) próbkę danych i wygeneruje schemat dla próbkowanych danych. Nie musi to jednak oznaczać, że będzie w 100% dokładne oszacowanie schematu.
Za pomocą tego narzędzia możesz regularnie sprawdzać swoje dane pod kątem schematu i wykrywać ważne lub niezamierzone zmiany w schemacie.
Kilkadziesiąt — Zostań administratorem baz danych MongoDB — wprowadzenie MongoDB do produkcjiDowiedz się, co trzeba wiedzieć, aby wdrażać, monitorować, zarządzać i skalować MongoDB. Pobierz za darmoKopie zapasowe
ClusterControl obsługuje dwie implementacje tworzenia kopii zapasowych MongoDB:mongodump i Percona Consistent Backup. Mimo to niektóre mniej regularnie używane funkcje, takie jak częściowe/przyrostowe kopie zapasowe i przesyłanie strumieniowe kopii zapasowych do innych klastrów, nie będą dostępne po wyjęciu z pudełka.
Kopia zapasowa MongoDB
MongoDB Backup to logiczne rozwiązanie do tworzenia kopii zapasowych NodeJS, które oferuje podobną funkcjonalność jak mongodump. Oprócz tego może również przesyłać strumieniowo kopie zapasowe przez sieć, dzięki czemu jest przydatny do przenoszenia kolekcji z jednej instancji MongoDB do drugiej.
Kolejną przydatną funkcją jest to, że została napisana w NodeJS. Oznacza to, że bardzo łatwo będzie zintegrować się z chatbotem Hubota i zautomatyzować transfery kolekcji. Nie bój się, jeśli Twoja firma nie używa Hubota jako chatbota:może również działać jako webhook lub być kontrolowany przez CLI.
Mongob
Mongob to kolejne logiczne rozwiązanie do tworzenia kopii zapasowych, ale w tym przypadku zostało napisane w Pythonie i jest dostępne tylko jako narzędzie CLI. Podobnie jak MongoDB Backup, może przesyłać bazy danych i kolekcje między instancjami MongoDB, ale oprócz tego może również ograniczać szybkość transferu.
Inną przydatną funkcją Mongoba jest możliwość tworzenia przyrostowych kopii zapasowych. Jest to dobre, jeśli chcesz mieć bardziej kompaktowe kopie zapasowe, ale także jeśli chcesz wykonać odzyskiwanie do określonego momentu.
Warstwa MongoRocks
MongoRocks Strata to narzędzie do tworzenia kopii zapasowych dla silnika pamięci masowej MongoRocks. Percona Server dla MongoDB zawiera silnik pamięci masowej MongoRocks, jednak brakuje w nim narzędzia do tworzenia kopii zapasowych Strata do tworzenia kopii zapasowych na poziomie plików. W zasadzie mongodump i Percona Consistent Backup są w stanie tworzyć niezawodne kopie zapasowe, ale ponieważ są to zrzuty logiczne, czas odzyskiwania będzie długi.
MongoRocks to silnik pamięci masowej, który opiera się na architekturze drzewa LSM. Zasadniczo oznacza to, że jest to magazyn zawierający tylko dodawanie. Aby móc to zrobić, operuje na wiaderkach danych:starsze dane będą przechowywane w większych (archiwalnych) wiaderkach, ostatnie dane będą przechowywane w mniejszych (ostatnich) wiaderkach, a wszystkie nowe przychodzące dane zostaną zapisane w specjalnym wiaderku pamięci . Za każdym razem, gdy zakończy się kompaktowanie, dane będą spływać z zasobnika pamięci do zasobników ostatnich, a ostatnio zmienione dane z powrotem do zasobnika archiwum.
Aby wykonać kopię zapasową wszystkich zasobników, Strata instruuje MongoDB, aby opróżniła zasobnik pamięci na dysk, a następnie kopiuje wszystkie zasobniki danych na poziomie pliku. Spowoduje to utworzenie spójnej kopii zapasowej wszystkich dostępnych danych. Możliwe będzie również poinstruowanie Straty, aby kopiowała tylko ostatnie zasobniki i skutecznie wykonywała przyrostową kopię zapasową.
Inną dobrą stroną Strata jest to, że udostępnia plik binarny mongoq, który umożliwia bezpośrednie zapytanie o kopie zapasowe. Oznacza to, że nie ma potrzeby przywracania kopii zapasowej do instancji MongoDB przed wysłaniem zapytania. Będziesz mógł wykorzystać tę funkcję, aby przesyłać dane produkcyjne w trybie offline do swojego systemu analitycznego!
GUI MongoDB
W ramach ClusterControl umożliwiamy odpytywanie baz danych MongoDB i kolekcji za pośrednictwem doradców. Tych doradców można utworzyć w interfejsie ClusterControl Developer Studio. Nie posiadamy bezpośredniego interfejsu z bazami danych, więc aby wprowadzić zmiany w swoich danych, będziesz musiał zalogować się do powłoki MongoDB lub mieć narzędzie, które pozwoli ci wprowadzić te zmiany.
PHPMoAdmin
PHPMoAdmin to odpowiednik PHPMyAdmin w MongoDB. Posiada podobną funkcjonalność jak PHPMyAdmin:zarządzanie danymi i administracją. Narzędzie umożliwi wykonywanie operacji CRUD zarówno w składni JSON, jak i PHP na wszystkich bazach danych i kolekcjach. Oprócz tego oferuje również funkcję importu/eksportu bieżącego wyboru danych.
Mongo-Express
Jeśli szukasz wszechstronnej przeglądarki danych, Mongo-Express to narzędzie, które zdecydowanie musisz wypróbować. Nie tylko pozwala na podobne operacje jak PHPMoAdmin, ale także może wyświetlać obrazy i filmy inline. Obsługuje nawet pobieranie dużych obiektów z zasobników GridFS.
Robomongo
Narzędziem, które idzie o krok dalej, jest Robomongo. Jako narzędzie finansowane przez społeczność, lista funkcji jest ogromna. Jest w stanie wykonywać te same operacje, co Mongo-Express, ale oprócz tego umożliwia również zarządzanie użytkownikami, rolami i kolekcjami. W przypadku połączeń obsługuje bezpośrednie połączenia MongoDB, ale obsługuje również topologie replikSet i instancje MongoDB Atlas.
Wniosek
Mamy nadzieję, że dzięki temu wyborowi bezpłatnych narzędzi społecznościowych przedstawiliśmy Ci dobry przegląd, jak zarządzać danymi MongoDB obok ClusterControl.
Miłego klastrowania!