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.
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 .
- Pobierz i zainstaluj narzędzia natywne bazy danych MongoDB z tego linku.
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
Jeśli jest wyłączona, zalecamy jej włączenie, jak pokazano poniżej
Wybieranie odpowiedniego 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:
Otwórz witrynę Azure Portal .
Przejdź do konta usługi Azure Cosmos DB dla bazy danych MongoDB
W lewym okienku nawigacyjnym wybierz blok Parametry połączenia i powinien zostać wyświetlony ekran podobny do poniższego:
- 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
- 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
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:Do zaimportowania
edx.json
do usługi Azure Cosmos DB można użyć tego samego terminalu. Jeśli korzystaszmongoimport
z maszyny z systemem Linux, wpiszmongoimport --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.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:
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"}
:
mongodump/mongorestore
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ówedx-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:Możesz użyć tego samego terminalu, aby przywrócić zawartość
edx-dump
do usługi Azure Cosmos DB. Jeśli korzystaszmongorestore
z maszyny z systemem Linux, wpiszmongorestore --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.Monitoruj dane wyjściowe terminalu z bazy danych mongorestore. Powinien zostać wyświetlony komunikat, że wyświetla wiersze do terminalu aktualizującego stan migracji:
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:
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
- Informacje o usłudze Azure Cosmos DB
- Dokumentacja narzędzi bazy danych MongoDB
- Próbujesz zaplanować pojemność migracji do usługi Azure Cosmos DB?
- Jeśli wiesz, ile rdzeni wirtualnych i serwerów znajduje się w istniejącym klastrze bazy danych, przeczytaj o szacowaniu jednostek żądań przy użyciu rdzeni wirtualnych lub procesorów wirtualnych
- Jeśli znasz typowe stawki żądań dla bieżącego obciążenia bazy danych, przeczytaj o szacowaniu jednostek żądań przy użyciu planisty pojemności usługi Azure Cosmos DB
Następne kroki
- Wskazówki dotyczące innych scenariuszy migracji można znaleźć w dokumencie Przewodnik po migracji baz danych opracowanym przez firmę Microsoft.