Udostępnij za pośrednictwem


Jakie są opcje migracji danych z bazy danych MongoDB do usługi Azure DocumentDB?

Ten artykuł ułatwia planowanie i wykonywanie migracji z bazy danych MongoDB do Azure DocumentDB. Obejmuje ona dostępne narzędzia migracji, kluczowe fazy migracji oraz najlepsze rozwiązania w celu zmniejszenia ryzyka i zminimalizowania przestojów.

Niezależnie od tego, czy przeprowadzasz migrację z lokalnego serwera MongoDB, maszyny wirtualnej hostowanej w chmurze, czy zarządzanej usługi MongoDB, opcje migracji, wskazówki i najlepsze praktyki opisane w tym artykule mają zastosowanie.

Kluczowe fazy migracji

Pomyślna migracja przebiega według tych odrębnych faz. Każda faza ma określone cele i kryteria sukcesu.

Oceń

Uruchom automatyczne skanowanie źródłowej bazy danych MongoDB przy użyciu rozszerzenia migracji Azure DocumentDB aby zidentyfikować nieobsługiwane funkcje, polecenia, składnię zapytań i typy indeksów. Ocena zawiera również omówienie wersji bazy danych MongoDB, licencji, typu wystąpienia oraz metryk bazy danych i kolekcji. Użyj tych ustaleń, aby zaplanować zmiany schematu i zidentyfikować wszelkie wymagane refaktoryzacje przed migracją.

Wskazówka

Zalecamy przejrzenie obsługiwanych funkcji i składni języka MQL (MongoDB Query Language) oraz przeprowadzenie weryfikacji koncepcji przed rzeczywistą migracją.

2. Przygotowanie

Przeanalizuj raport oceny i zmierz źródłowe TPS (transakcje na sekundę). Uruchom migracje w wersji próbnej na reprezentatywnych danych, aby określić docelową warstwę obliczeniową, warstwę magazynowania i liczbę fragmentów. Przeprowadź testy wydajnościowe, aby upewnić się, że konfiguracja docelowa spełnia Twoje wymagania.

3. Uściślij

Przygotuj kolekcje docelowe przy użyciu odpowiednich kluczy fragmentów i indeksów, które pasują do wzorców zapytań produkcyjnych. Jeśli używasz wielu fragmentów, zdecyduj, jak dystrybuować kolekcje między fragmentami, aby równoważyć obciążenie i zminimalizować operacje między fragmentami.

4. Migrowanie

Uruchom zadanie migracji, aby przenieść dane w trybie offline lub w trybie online:

  • Migracja w trybie offline: tworzy migawkę źródła na początku i kopiuje je zbiorczo do miejsca docelowego. Wszystkie dane dodane, zaktualizowane lub usunięte w źródle po wykonaniu migawki nie są kopiowane. Wymagany przestój zależy od tego, jak długo trwa kopiowanie zbiorcze.
  • Migracja online: wykonuje tę samą kopię zbiorczą co w trybie offline, ale także monitoruje strumień zmian w całym procesie. Zmiany wprowadzone podczas migracji są replikowane do miejsca docelowego, więc wymagany przestój aplikacji jest minimalny. Wymaga przepływu wiadomości i wystarczająco dużego oplogu w źródle.

Wskazówka

W przypadku migracji online upewnij się, że strumień zmian jest włączony, a plik oplog ma odpowiedni rozmiar w źródłowej bazie danych MongoDB, aby przechwycić wszystkie zmiany w oknie migracji.

Aby uzyskać dostępne narzędzia, zobacz Narzędzia migracji.

5. Sprawdzanie poprawności

Sprawdź, czy wszystkie dane zostały skopiowane, łącznie z najnowszymi aktualizacjami. Porównaj liczbę dokumentów, uruchom weryfikację opartą na próbce i sprawdź, czy indeksy i struktury danych spełniają oczekiwania w obiekcie docelowym. Użyj zautomatyzowanych skryptów, aby walidacja była powtarzalna i spójna.

6. Przełączenie

Przenieś ruch odczytu do miejsca docelowego i sprawdź, czy nie ma problemów z funkcjonalnością ani wydajnością. Po pomyślnym zakończeniu walidacji odczytu przenieś ruch zapisu do miejsca docelowego. Uważnie monitoruj dokładnie w oknie przełączenia pod kątem wszelkich anomalii.

Narzędzia migracji

Narzędzia omówione w tym artykule ułatwiają migrowanie obciążeń bazy danych MongoDB z następujących źródeł:

  • Maszyna wirtualna bazy danych MongoDB
  • Atlas bazy danych MongoDB
  • AWS DocumentDB

Rozszerzenie do migracji DocumentDB w usłudze Azure

Twórz i zarządzaj zadaniami migracji w Visual Studio Code za pomocą rozszerzenia Azure DocumentDB Migration (wersja publiczna zapoznawcza) — rozwiązania stworzonego z myślą o prostocie, bezpieczeństwie i braku przestoju.

To narzędzie zapewnia jasne, szczegółowe wskazówki ułatwiające migrowanie obciążeń bez przerw w działaniu usługi. Masz następujące możliwości:

  • Wybieranie określonych baz danych i kolekcji na potrzeby migracji
  • Wykonaj wszystkie kroki w znanym interfejsie programu VS Code
  • Zapewnianie bezpiecznej łączności w całym procesie
  • Korzystanie z zerowego kosztu korzystania z rozszerzenia

Dzięki rozszerzeniu migracji Azure DocumentDB możesz usprawnić swoją podróż migracyjną, zachowując jednocześnie kontrolę i bezpieczeństwo — a wszystko to bez dodatkowej infrastruktury lub złożoności.

Narzędzie aplikacji internetowej (online)

Usprawnij migrację do usługi Azure DocumentDB przy użyciu MongoMigrationwebBasedUtility narzędzia zaprojektowanego pod kątem wydajności, niezawodności i łatwości użycia. Repozytorium zawiera szczegółowe instrukcje krok po kroku dotyczące migrowania obciążeń. To narzędzie zapewnia bezproblemowe środowisko migracji danych w trybie online i offline. Proces jest przyjazny dla użytkownika i wymaga podania tylko szczegółów źródłowych i docelowych. Umożliwia ona bezproblemowe migrowanie kolekcji Bazy danych MongoDB przy zachowaniu kontroli, zabezpieczeń i skalowalności, co pozwala odblokować pełny potencjał Azure DocumentDB.

Najważniejsze funkcje:

  • Obsługuje wdrażanie prywatne w sieci wirtualnej w celu zapewnienia zwiększonych zabezpieczeń
  • Funkcje automatycznego wznawiania w przypadku utraty połączenia lub błędów przejściowych
  • Przyjazny dla użytkownika interfejs
  • Dostęp do kodu źródłowego języka C# w GitHub

Narzędzie obsługuje elastyczne opcje wdrażania i działa niezależnie bez zależności od innych zasobów Azure. Ponadto oferuje skalowalną wydajność z opcją dostosowywania planów cenowych dla aplikacji Azure Web App.

Natywne narzędzia bazy danych MongoDB (offline)

Możesz również użyć natywnych narzędzi bazy danych MongoDB, takich jak mongodump/mongorestore, mongoexport/mongoimport migrować zestawy danych w trybie offline (bez replikowania zmian na żywo) do oferty Azure DocumentDB.

Scenario Narzędzie natywne MongoDB
Przenoszenie podzbioru danych bazy danych (opartych na formacie JSON/CSV) mongoexport/mongoimport
Przenoszenie całej bazy danych (opartej na formacie BSON) mongodump/mongorestore
  • mongoexport/mongoimport to najlepsza para narzędzi migracji do migrowania podzestawu bazy danych MongoDB.
    • Mongoexport eksportuje istniejące dane do pliku JSON lub CSV czytelnego dla człowieka. Polecenie mongoexport przyjmuje argument określający podzestaw istniejących danych do wyeksportowania.
    • mongoimport otwiera plik JSON lub CSV i wstawia zawartość do docelowego wystąpienia bazy danych (w tym przypadku Azure DocumentDB).
    • JSON i CSV nie są kompaktowymi formatami; użycie mongoimport może prowadzić do poniesienia dodatkowych opłat sieciowych podczas wysyłania danych do usługi Azure DocumentDB.
  • mongodump/mongorestore to najlepsza para narzędzi migracji do migrowania całej bazy danych MongoDB. Kompaktowy format BSON umożliwia bardziej efektywne wykorzystanie zasobów sieciowych podczas wstawiania danych do Azure DocumentDB.
    • mongodump eksportuje istniejące dane jako plik BSON.
    • mongorestore importuje zrzut pliku BSON do Azure DocumentDB.

Uwaga / Notatka

Narzędzia natywne bazy danych MongoDB mogą przenosić dane tylko tak szybko, jak pozwala na to sprzęt hosta.

Najlepsze rozwiązania dotyczące migracji

Skorzystaj z tych najlepszych rozwiązań, aby zmniejszyć ryzyko, dokładniej oszacować pojemność, zwiększyć szybkość migracji i bezpiecznie wykonać migrację jednorazową.

Zmniejszanie błędów

  • Użyj haseł zakodowanych w adresach URL w parametrach połączenia. Znaki specjalne, takie jak @, #i : mogą przerywać analizowanie, gdy nie są kodowane. Kodowanie adresów URL pomaga uniknąć błędów połączeń podczas przeprowadzania oceny i migracji.

  • Uruchom wstępną ocenę migracji przed migracją. Ocena ułatwia wczesne identyfikowanie nieobsługiwanych funkcji, luk w zgodności i potencjalnych blokad. Rozwiąż problemy przed migracją, aby zmniejszyć przeróbki podczas przełączenia.

  • Przećwicz migrację i przełączenie przed produkcją. Uruchom co najmniej jedną migrację próbną w środowisku nieprodukcyjnym. Praktyka zwiększa dokładność czasu, gotowość zespołu i pewność siebie podczas przejścia produkcyjnego.

Dokładne określanie rozmiaru infrastruktury

  • Uruchom migrację próbną na małym, ale reprezentatywnym zestawie danych. Użyj wersji próbnej, aby przechwycić realistyczną przepływność, opóźnienie i zużycie zasobów. Reprezentatywna próbka daje lepsze oszacowania niż syntetyczne dane testowe.

  • Ekstrapolować wyniki prób w celu oszacowania warstwy obliczeniowej, warstwy przechowywania i liczby fragmentów. Użyj obserwowanych metryk próbnych, aby projektować końcowe potrzeby dotyczące określania rozmiaru na podstawie pełnego woluminu zestawu danych. Ponownie sprawdź szacowanie, czy rozkład danych produkcyjnych różni się od przykładu.

  • Użyj reprezentatywnej liczby dokumentów, rozmiaru i struktury z ustawieniami przypominającymi środowisko produkcyjne. Dopasuj ustawienia indeksowania produkcyjnego i fragmentowania podczas okresu próbnego, aby uniknąć niedoceniania kosztów lub czasu trwania migracji. Ustawienia nieprodukcyjne mogą generować mylące wyniki.

  • Szacuj pamięć docelową na podstawie wyników prób, zamiast zakładać, że rozmiary źródłowe i docelowe są równe. Rozmiary pamięci źródłowej i docelowej mogą się różnić ze względu na różnice w definicjach indeksów i układzie danych. Użyj wyników wersji próbnej, aby zaplanować magazyn z bezpiecznym buforem.

Optymalizowanie szybkości migracji

  • Jeśli to możliwe, przeprowadź migrację w tym samym regionie. Utrzymywanie źródła i miejsca docelowego w tym samym regionie zmniejsza opóźnienie sieci i zwiększa wydajność transferu danych. Może również zmniejszyć koszty transferu danych między regionami.

  • Skaluj w górę podczas migracji, a następnie skaluj w dół po zmianie. Na przykład można tymczasowo skalować klaster docelowy do M200, aby zwiększyć przepływność migracji. Po migracji przeprowadź skalowanie w dół do odpowiedniej warstwy w obsługiwanym zakresie dla obciążeń w stanie stałym.

  • Wybierz dyski z wyższymi IOPS, aby szybciej zapisywać. Większa liczba IOPS (operacji we/wy na sekundę) może znacznie poprawić wydajność migracji z dużą liczbą operacji zapisu. Ponieważ rozmiar dysku zwykle nie można skalować w dół później, wybierz dokładnie rozmiar dysku podczas planowania.

Zaplanuj przełączenie dokładnie, ponieważ nie ma możliwości cofnięcia

  • Zaplanuj przestój podczas okna o małym natężeniu ruchu. Wymagany przestój zależy od tego, jak długo są wykonywane kroki weryfikacji po tym, gdy migracja nadąża za na bieżąco wprowadzanymi zmianami. Okno o niskim natężeniu ruchu zmniejsza wpływ na działalność biznesową.

  • Należy zatrzymać wszystkie operacje zapisu do źródła tuż przed przełączeniem. Ten krok zapobiega rozbieżności między elementem źródłowym i docelowym w ostatniej chwili. Upewnij się, że działanie zapisu jest w pełni wstrzymane przed zakończeniem przełączenia.

  • Przed przeniesieniem zapisów zweryfikuj zmigrowane dane. Porównaj liczby dokumentów, a następnie uruchom porównanie dokumentów losowych (na przykład testy oparte na skrótach). Użyj skryptu, jeśli jest to możliwe, aby powtarzać walidację.

  • Zaktualizuj parametry połączenia aplikacji i przetestuj je w lokalizacji docelowej. Uruchom walidację funkcjonalną i wydajnościową względem odczytów docelowych i przetestuj ruch, zanim włączysz zapisy produkcyjne. Potwierdź, że ścieżki krytyczne zachowują się zgodnie z oczekiwaniami.

  • Przenieś ruch zapisu dopiero po pomyślnym zakończeniu walidacji. Przesunięcie zapisów produkcyjnych do obiektu docelowego dopiero po pomyślnym i spójnym wynikach testu. Użyj etapowego wdrożenia, jeśli architektura aplikacji ją obsługuje.

Koordynowanie między zespołami w celu bezproblemowej migracji

  • Zabezpiecz poparcie wszystkich interesariuszy: aplikacji, danych, infrastruktury, zabezpieczeń, sieci i zespołów zarządzania. Wyjaśnij oczekiwania i odpowiedzialności na wczesnym etapie. Własność współdzielona zmniejsza nieporozumienia i opóźnienia podczas wykonywania.

  • Korzystanie z planowania i próbnych przebiegów w celu budowania zaufania zespołu i usprawnienia procedur. Nie ma skrótów do płynnej migracji. Uruchamianie wersji próbnych ujawnia problemy w środowisku o niższym ryzyku i daje zespołom okazję do ćwiczeń.

  • Traktuj moment przełączania jako krytyczny i wrażliwy na czas. Cutover wymaga precyzyjnej koordynacji i jasnej komunikacji. Wyznaczanie osób podejmujących decyzje i ustalanie ścieżek eskalacji przed rozpoczęciem.

  • Dowiedz się, kto wykona poszczególne kroki, kiedy powinno się to zdarzyć i jak zminimalizować przestoje. Przypisz obowiązki, ustal osie czasu i dopasuj je do kryteriów sukcesu. Dokumentowanie elementu Runbook jednorazowego i udostępnianie go wszystkim uczestnikom.

  • Uzgodnij działania ze wszystkimi interesariuszami, gdy przełączenie wymaga jednoczesnej aktualizacji wielu obciążeń. Zaplanuj przełączenie podczas okna konserwacyjnego, które odpowiada wszystkim zespołom. Unikaj piątkowych nocy lub okresów w pobliżu głównych wydarzeń biznesowych.

  • Nie spiesz się ani nie pomijaj kroków należytej staranności — nie ma możliwości cofnięcia zmian. Dokładne sprawdzanie poprawności i staranne wykonywanie zapobiega kosztownym błędom. Zaakceptuj, że jednorazowe przejście zajmuje trochę czasu; skróty ukierunkowane na szybkość tworzą ryzyko.