Udostępnij za pośrednictwem


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

Przeczytaj cały ten przewodnik przed wykonaniem kroków migracji.

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 (jednorazowym) z lokalnego lub w chmurze wystąpienia bazy danych MongoDB do interfejsu API usługi Azure Cosmos DB dla bazy danych MongoDB.

Z tego samouczka dowiesz się, jak wykonywać następujące 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 parametry połączenia, można uruchamiać narzędzia w dowolnym miejscu, jednak zalecamy uruchamianie 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 których całkowity czas migracji nie jest problemem. Łącznik Platformy Spark bazy danych MongoDB, usługa Azure Data Migration Service (DMS) lub usługa 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 odpowiednio 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 możliwości zapewniania ładu zasobów, co gwarantuje możliwość pełnego wykorzystania aprowizowanych 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ć próbę żądania. Czas rundy związany z przeskoku sieci między narzędziem migracji a usługą Azure Cosmos DB ma wpływ 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 punktu widzenia narzędzi natywnych bazy danych MongoDB potrzeba obsługi ponownych prób jest zminimalizowana, co pozytywnie wpłynie na środowisko podczas migracji.

Możliwości 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 usługi 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.
    • 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.
    • 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 przez program mongoimport może zostać naliczona nadwyżka 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, ponieważ dane są wstawiane 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.
  • Na bok — jeśli po prostu masz 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ć narzędzia natywne bazy danych 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 lewym okienku nawigacyjnym 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 narzędzia natywne bazy danych MongoDB łączą się z usługą Azure Cosmos DB, należy 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 zanotuj 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. HOST, PORT, NAZWA UŻYTKOWNIKA i HASŁO powinny być wypełnione na podstawie właściwości istniejącego wystąpienia bazy danych MongoDB.

    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 komunikat o utworzeniu edx.json pliku:

    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. HOST, PORT, NAZWA UŻYTKOWNIKA i HASŁO 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, że wyświetla wiersze tekstu w terminalu zawierającym 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 Eksploratora danych. Powinna zostać wyświetlona (1) utworzona baza danych edx z zaimportowaną kolekcjąQuery , a (2) w przypadku wyeksportowania tylko podzestawu 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
    

    HOST, PORT, NAZWA UŻYTKOWNIKA i HASŁO powinny być wypełnione na podstawie właściwości istniejącego wystąpienia bazy danych MongoDB. Powinien zostać wyświetlony edx-dump katalog i że struktura katalogów edx-dump odtwarza hierarchię zasobów (bazę danych i strukturę 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ść edx-dump do 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. HOST, PORT, NAZWA UŻYTKOWNIKA i HASŁO powinny być wypełnione na podstawie zebranych wcześniej poświadczeń usługi Azure Cosmos DB.

  3. Monitoruj dane wyjściowe terminalu z bazy danych mongorestore. Powinien zostać wyświetlony komunikat, że wyświetla wiersze do terminalu aktualizującego stan migracji:

    Zrzut ekranu przedstawiający wywołanie magazynu 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 Eksploratora danych. Powinna zostać wyświetlona (1) utworzona baza danych edx z zaimportowaną kolekcjąQuery, a (2) importowane zapytanie powinno zawierać cały zestaw danych z kolekcji źródłowej:

    Zrzut ekranu przedstawiający weryfikowanie danych 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 optymalizacja zasad indeksowania, zaktualizowanie domyślnego poziomu spójności lub skonfigurowanie globalnej dystrybucji dla konta usługi Azure Cosmos DB. Aby uzyskać więcej informacji, zobacz artykuł Dotyczący optymalizacji po migracji .

Dodatkowe zasoby

Następne kroki