Samouczek: migrowanie bazy danych MongoDB do interfejsu API usługi Azure Cosmos DB dla bazy danych MongoDB w trybie offline przy użyciu narzędzi natywnych bazy danych MongoDB

DOTYCZY: Mongodb

Ważne

Przed wykonaniem kroków migracji przeczytaj ten cały przewodnik.

Ten przewodnik migracji bazy danych MongoDB jest częścią serii migracji bazy danych MongoDB. Krytyczne kroki migracji bazy danych MongoDB to etapy przed migracją, migracją i po migracji, jak pokazano poniżej.

Diagram kroków migracji.

Omówienie migracji danych przy użyciu narzędzi natywnych bazy danych MongoDB

Za pomocą natywnych narzędzi bazy danych MongoDB można przeprowadzić migrację baz danych w trybie offline (jednorazową) z wystąpienia lokalnego lub w chmurze bazy danych MongoDB do interfejsu API usługi Azure Cosmos DB dla bazy danych MongoDB.

Ten samouczek zawiera informacje na temat wykonywania następujących czynności:

  • Wybieranie odpowiedniego narzędzia natywnego bazy danych MongoDB dla danego przypadku użycia
  • Uruchamianie migracji.
  • Monitoruj migrację.
  • Sprawdź, czy migracja zakończyła się pomyślnie.

W tym samouczku przeprowadzisz migrację zestawu danych w bazie danych MongoDB hostowanego na maszynie wirtualnej platformy Azure do interfejsu API usługi Azure Cosmos DB dla bazy danych MongoDB przy użyciu natywnych narzędzi bazy danych MongoDB. Narzędzia natywne bazy danych MongoDB to zestaw plików binarnych, które ułatwiają manipulowanie danymi w istniejącym wystąpieniu bazy danych MongoDB. Ponieważ usługa Azure Cosmos DB uwidacznia interfejs API dla bazy danych MongoDB, narzędzia natywne bazy danych MongoDB mogą wstawiać dane do usługi Azure Cosmos DB. Ten dokument koncentruje się na migrowaniu danych z wystąpienia bazy danych MongoDB przy użyciu polecenia mongoexport/mongoimport lub mongodump/mongorestore. Ponieważ narzędzia natywne łączą się z bazą danych MongoDB przy użyciu parametrów połączenia, można uruchamiać narzędzia w dowolnym miejscu, jednak zalecamy uruchomienie tych narzędzi w tej samej sieci co wystąpienie bazy danych MongoDB, aby uniknąć problemów z zaporą.

Narzędzia natywne bazy danych MongoDB mogą przenosić dane tylko tak szybko, jak pozwala na to sprzęt hosta; narzędzia natywne mogą być najprostszym rozwiązaniem dla małych zestawów danych, w przypadku których całkowity czas migracji nie jest problemem. Łącznik Platformy Spark bazy danych MongoDB, usługa Azure Data Migration Service (DMS) lub Azure Data Factory (ADF) mogą być lepszymi alternatywami, jeśli potrzebujesz skalowalnego potoku migracji.

Jeśli nie masz jeszcze skonfigurowanego źródła bazy danych MongoDB, zobacz artykuł Install and configure MongoDB on a Windows VM in Azure (Instalowanie i konfigurowanie bazy danych MongoDB na maszynie wirtualnej z systemem Windows na platformie Azure).

Wymagania wstępne

Do ukończenia tego samouczka niezbędne są następujące elementy:

  • Wykonaj kroki przed migracją , takie jak szacowanie przepływności, wybieranie klucza partycji i zasady indeksowania.
  • Utwórz konto usługi Azure Cosmos DB dla bazy danych MongoDB.
  • Zaloguj się do wystąpienia bazy danych MongoDB
    • Pobierz i zainstaluj narzędzia natywne bazy danych MongoDB z tego linku.
      • Upewnij się, że wersja narzędzi natywnych bazy danych MongoDB jest zgodna z istniejącym wystąpieniem bazy danych MongoDB.
      • Jeśli wystąpienie bazy danych MongoDB ma inną wersję niż usługa Azure Cosmos DB dla bazy danych MongoDB, zainstaluj wersje narzędzi natywnych bazy danych MongoDB i użyj odpowiedniej wersji narzędzia dla bazy danych MongoDB i usługi Azure Cosmos DB dla bazy danych MongoDB.
    • Dodaj użytkownika z uprawnieniami readWrite , chyba że już istnieje. W dalszej części tego samouczka podaj tę nazwę użytkownika/hasło do narzędzi mongoexport i mongodump .

Konfigurowanie ponownych prób po stronie serwera usługi Azure Cosmos DB

Klienci migrujący z bazy danych MongoDB do usługi Azure Cosmos DB korzystają z funkcji zarządzania zasobami, które gwarantują możliwość pełnego wykorzystania aprowiowanych jednostek RU/s przepływności. Usługa Azure Cosmos DB może ograniczyć dane żądanie w trakcie migracji, jeśli to żądanie przekroczy aprowizowaną jednostkę RU/s kontenera; następnie należy ponowić żądanie. Czas rundy związany z przeskoku sieci między narzędziem migracji a usługą Azure Cosmos DB wpływa na całkowity czas odpowiedzi tego żądania; ponadto narzędzia natywne bazy danych MongoDB mogą nie obsługiwać ponownych prób. Funkcja ponawiania po stronie serwera usługi Azure Cosmos DB umożliwia usłudze przechwytywanie kodów błędów ograniczania przepustowości i ponawianie próby przy znacznie niższym czasie rundy, co znacznie skraca czas odpowiedzi na żądanie. Z perspektywy narzędzi natywnych bazy danych MongoDB potrzeba obsługi ponownych prób jest zminimalizowana, co pozytywnie wpłynie na środowisko podczas migracji.

Możliwość ponawiania po stronie serwera można znaleźć w bloku Funkcje portalu usługi Azure Cosmos DB

Zrzut ekranu przedstawiający funkcję SSR bazy danych MongoDB.

Jeśli jest wyłączona, zalecamy jej włączenie, jak pokazano poniżej

Zrzut ekranu przedstawiający włączanie funkcji SSR bazy danych MongoDB.

Wybieranie odpowiedniego narzędzia natywnego bazy danych MongoDB

Diagram przedstawiający wybieranie najlepszego narzędzia natywnego bazy danych MongoDB.

  • mongoexport/mongoimport to najlepsza para narzędzi migracji do migrowania podzestawu bazy danych MongoDB.
    • Polecenie mongoexport eksportuje istniejące dane do pliku JSON lub CSV z możliwością odczytu przez człowieka. Polecenie mongoexport przyjmuje argument określający podzbiór istniejących danych do wyeksportowania.
    • Polecenie mongoimport otwiera plik JSON lub CSV i wstawia zawartość do docelowego wystąpienia bazy danych (w tym przypadku usługi Azure Cosmos DB).
    • Należy pamiętać, że formaty JSON i CSV nie są formatami kompaktowymi; W miarę wysyłania danych do usługi Azure Cosmos DB w narzędziu mongoimport mogą być naliczane nadwyżki opłat za sieć.
  • mongodump/mongorestore to najlepsza para narzędzi migracji do migrowania całej bazy danych MongoDB. Kompaktowy format BSON zwiększy wydajność korzystania z zasobów sieciowych podczas wstawiania danych do usługi Azure Cosmos DB.
    • Mongodump eksportuje istniejące dane jako plik BSON.
    • Usługa mongorestore importuje zrzut pliku BSON do usługi Azure Cosmos DB.
  • Poza tym — jeśli masz po prostu mały plik JSON, który chcesz zaimportować do usługi Azure Cosmos DB dla bazy danych MongoDB, narzędzie mongoimport to szybkie rozwiązanie do pozyskiwania danych.

Zbieranie poświadczeń usługi Azure Cosmos DB dla bazy danych MongoDB

Usługa Azure Cosmos DB dla bazy danych MongoDB zapewnia zgodne poświadczenia dostępu, z których mogą korzystać natywne narzędzia mongoDB. Aby przeprowadzić migrację danych do usługi Azure Cosmos DB dla bazy danych MongoDB, musisz mieć te poświadczenia dostępu. Aby znaleźć te poświadczenia:

  1. Otwórz witrynę Azure Portal

  2. Przejdź do konta usługi Azure Cosmos DB dla bazy danych MongoDB

  3. W okienku nawigacji po lewej stronie wybierz blok Parametry połączenia i powinien zostać wyświetlony ekran podobny do poniższego:

    Zrzut ekranu przedstawiający poświadczenia usługi Azure Cosmos DB.

    • HOST — punkt końcowy usługi Azure Cosmos DB działa jako nazwa hosta bazy danych MongoDB
    • PORT — gdy natywne narzędzia bazy danych MongoDB łączą się z usługą Azure Cosmos DB, musisz jawnie określić ten port
    • USERNAME — prefiks nazwy domeny punktu końcowego usługi Azure Cosmos DB działa jako nazwa użytkownika bazy danych MongoDB
    • PASSWORD — klucz główny usługi Azure Cosmos DB działa jako hasło bazy danych MongoDB
    • Ponadto zwróć uwagę na pole SSL , które jest true — narzędzie natywne bazy danych MongoDB musi włączyć protokół SSL podczas zapisywania danych w usłudze Azure Cosmos DB

Przeprowadzanie migracji

  1. Wybierz bazy danych i kolekcje, które chcesz migrować. W tym przykładzie migrujemy kolekcję zapytań w bazie danych edx z bazy danych MongoDB do usługi Azure Cosmos DB.

Pozostała część tej sekcji przeprowadzi Cię przez proces korzystania z pary narzędzi wybranych w poprzedniej sekcji.

mongoexport/mongoimport

  1. Aby wyeksportować dane ze źródłowego wystąpienia bazy danych MongoDB, otwórz terminal na maszynie wystąpienia bazy danych MongoDB. Jeśli jest to maszyna z systemem Linux, wpisz

    mongoexport --host HOST:PORT --authenticationDatabase admin -u USERNAME -p PASSWORD --db edx --collection query --out edx.json
    

    W systemie Windows plik wykonywalny będzie mieć wartość mongoexport.exe. NA podstawie właściwości istniejącego wystąpienia bazy danych MongoDB należy wypełnić host, PORT, NAZWA UŻYTKOWNIKA i HASŁO .

    Możesz również wyeksportować tylko podzbiór zestawu danych MongoDB. Jednym ze sposobów na to jest dodanie dodatkowego argumentu filtru:

    mongoexport --host HOST:PORT --authenticationDatabase admin -u USERNAME -p PASSWORD --db edx --collection query --out edx.json --query '{"field1":"value1"}'
    

    Eksportowane są tylko dokumenty zgodne z filtrem {"field1":"value1"} .

    Po wykonaniu wywołania powinien zostać wyświetlony edx.json plik:

    Zrzut ekranu przedstawiający wywołanie mongoexport.

  2. Do zaimportowania edx.json do usługi Azure Cosmos DB można użyć tego samego terminalu. Jeśli korzystasz mongoimport z maszyny z systemem Linux, wpisz

    mongoimport --host HOST:PORT -u USERNAME -p PASSWORD --db edx --collection importedQuery --ssl --type json --writeConcern="{w:0}" --file edx.json
    

    W systemie Windows plik wykonywalny będzie mieć wartość mongoimport.exe. POLA HOST, PORT, USERNAME i PASSWORD powinny być wypełnione na podstawie zebranych wcześniej poświadczeń usługi Azure Cosmos DB.

  3. Monitoruj dane wyjściowe terminalu z polecenia mongoimport. Powinien zostać wyświetlony komunikat wyświetlający wiersze tekstu do terminalu zawierającego aktualizacje stanu migracji:

    Zrzut ekranu przedstawiający wywołanie polecenia mongoimport.

  4. Na koniec sprawdź usługę Azure Cosmos DB, aby sprawdzić, czy migracja zakończyła się pomyślnie. Otwórz portal usługi Azure Cosmos DB i przejdź do Data Explorer. Powinna zostać wyświetlona wartość (1), że utworzono bazę danych edx z zaimportowaną kolekcjąQuery i (2), jeśli wyeksportowano tylko podzestaw danych, zaimportowane zapytanie powinno zawierać tylko dokumenty pasujące do żądanego podzestawu danych. W poniższym przykładzie tylko jeden dokument był zgodny z filtrem {"field1":"value1"}:

    Zrzut ekranu przedstawiający weryfikację danych usługi Azure Cosmos DB.

mongodump/mongorestore

  1. Aby utworzyć zrzut danych BSON wystąpienia bazy danych MongoDB, otwórz terminal na maszynie wystąpienia bazy danych MongoDB. Jeśli jest to maszyna z systemem Linux, wpisz

    mongodump --host HOST:PORT --authenticationDatabase admin -u USERNAME -p PASSWORD --db edx --collection query --ssl --out edx-dump
    

    NA podstawie właściwości istniejącego wystąpienia bazy danych MongoDB należy wypełnić host, PORT, NAZWA UŻYTKOWNIKA i HASŁO . Powinien zostać utworzony edx-dump katalog i że struktura katalogów edx-dump odtwarza hierarchię zasobów (strukturę bazy danych i kolekcji) źródłowego wystąpienia bazy danych MongoDB. Każda kolekcja jest reprezentowana przez plik BSON:

    Zrzut ekranu przedstawiający wywołanie mongodump.

  2. Możesz użyć tego samego terminalu, aby przywrócić zawartość do edx-dump usługi Azure Cosmos DB. Jeśli korzystasz mongorestore z maszyny z systemem Linux, wpisz

    mongorestore --host HOST:PORT --authenticationDatabase admin -u USERNAME -p PASSWORD --db edx --collection importedQuery --writeConcern="{w:0}" --ssl edx-dump/edx/query.bson
    

    W systemie Windows plik wykonywalny będzie mieć wartość mongorestore.exe. POLA HOST, PORT, USERNAME i PASSWORD powinny być wypełnione na podstawie zebranych wcześniej poświadczeń usługi Azure Cosmos DB.

  3. Monitoruj dane wyjściowe terminalu z usługi mongorestore. Powinien zostać wyświetlony komunikat wyświetlający wiersze do terminalu aktualizujące stan migracji:

    Zrzut ekranu przedstawiający wywołanie mongorestore.

  4. Na koniec sprawdź usługę Azure Cosmos DB, aby sprawdzić, czy migracja zakończyła się pomyślnie. Otwórz portal usługi Azure Cosmos DB i przejdź do Data Explorer. Powinna zostać wyświetlona wartość (1), że utworzono bazę danych edx z zaimportowaną kolekcjąQuery , a (2) zaimportowane zapytanie powinno zawierać cały zestaw danych z kolekcji źródłowej:

    Zrzut ekranu przedstawiający weryfikowanie danych magazynu mongorestore w usłudze Azure Cosmos DB.

Optymalizacja po migracji

Po przeprowadzeniu migracji danych przechowywanych w bazie danych MongoDB do interfejsu API usługi Azure Cosmos DB dla bazy danych MongoDB możesz nawiązać połączenie z usługą Azure Cosmos DB i zarządzać danymi. Można również wykonać inne kroki optymalizacji po migracji, takie jak optymalizowanie zasad indeksowania, aktualizowanie domyślnego poziomu spójności lub konfigurowanie dystrybucji globalnej dla konta usługi Azure Cosmos DB. Aby uzyskać więcej informacji, zobacz artykuł Dotyczący optymalizacji po migracji .

Dodatkowe zasoby

Następne kroki