Självstudie: Migrera MongoDB till Azure Cosmos DB:s API för MongoDB offline med hjälp av inbyggda MongoDB-verktyg
GÄLLER FÖR: MongoDB
Viktigt!
Läs hela den här guiden innan du utför migreringsstegen.
Den här MongoDB-migreringsguiden är en del av serien om MongoDB-migrering. De kritiska Stegen för MongoDB-migrering är före migrering, migrering och efter migrering, enligt nedan.
Översikt över datamigrering med hjälp av inbyggda MongoDB-verktyg
Du kan använda inbyggda MongoDB-verktyg för att utföra en offlinemigrering (en gång) av databaser från en lokal eller molninstans av MongoDB till Azure Cosmos DB:s API för MongoDB.
I den här självstudien lär du dig att:
- Välj lämpligt ursprungligt MongoDB-verktyg för ditt användningsfall
- Köra migreringen.
- Övervaka migreringen.
- Kontrollera att migreringen lyckades.
I den här självstudien migrerar du en datauppsättning i MongoDB som finns på en virtuell Azure-dator till Azure Cosmos DB:s API för MongoDB med hjälp av inbyggda MongoDB-verktyg. De inbyggda MongoDB-verktygen är en uppsättning binärfiler som underlättar datamanipulering på en befintlig MongoDB-instans. Eftersom Azure Cosmos DB exponerar ett API för MongoDB kan de inbyggda MongoDB-verktygen infoga data i Azure Cosmos DB. Fokus för det här dokumentet är att migrera data från en MongoDB-instans med mongoexport /mongoimport eller mongodump/mongorestore. Eftersom de inbyggda verktygen ansluter till MongoDB med anslutningssträng kan du köra verktygen var som helst, men vi rekommenderar att du kör dessa verktyg i samma nätverk som MongoDB-instansen för att undvika brandväggsproblem.
De inbyggda MongoDB-verktygen kan bara flytta data så snabbt som värdmaskinvaran tillåter. de inbyggda verktygen kan vara den enklaste lösningen för små datauppsättningar där total migreringstid inte är ett problem. MongoDB Spark-anslutningsprogram, Azure Data Migration Service (DMS) eller Azure Data Factory (ADF) kan vara bättre alternativ om du behöver en skalbar migreringspipeline.
Om du inte har konfigurerat någon MongoDB-källa, kan du läsa artikeln Installera och konfigurera MongoDB på en virtuell Windows-dator i Azure.
Förutsättningar
För att slutföra den här kursen behöver du:
- Slutför stegen före migreringen , till exempel att beräkna dataflöde, välja en partitionsnyckel och indexeringsprincipen.
- Skapa ett Azure Cosmos DB för MongoDB-konto.
- Logga in på din MongoDB-instans
- Ladda ned och installera de inbyggda MongoDB-verktygen från den här länken.
- Se till att din version av mongoDB-inbyggda verktyg matchar din befintliga MongoDB-instans.
- Om din MongoDB-instans har en annan version än Azure Cosmos DB för MongoDB installerar du båda mongoDB-verktygsversionerna och använder lämplig verktygsversion för MongoDB respektive Azure Cosmos DB för MongoDB.
- Lägg till en användare med
readWrite
behörigheter, såvida det inte redan finns någon. Senare i den här självstudien anger du det här användarnamnet/lösenordet till mongoexport- och mongodump-verktygen.
- Ladda ned och installera de inbyggda MongoDB-verktygen från den här länken.
Konfigurera återförsök på Serversidan i Azure Cosmos DB
Kunder som migrerar från MongoDB till Azure Cosmos DB drar nytta av resursstyrningsfunktioner, vilket garanterar möjligheten att fullt ut använda din etablerade RU/s av dataflöde. Azure Cosmos DB kan begränsa en viss begäran under migreringen om den begäran överskrider containern etablerade RU/s. måste begäran göras på nytt. Den tur och retur-tid som ingår i nätverkshoppet mellan migreringsverktyget och Azure Cosmos DB påverkar den totala svarstiden för den begäran. Dessutom kan mongoDB-inbyggda verktyg inte hantera återförsök. Funktionen för återförsök på serversidan i Azure Cosmos DB gör att tjänsten kan fånga upp felkoder för begränsning och försöka igen med mycket lägre tur- och returtid, vilket avsevärt förbättrar svarstiderna för begäranden. Ur mongoDB-inbyggda verktygs perspektiv minimeras behovet av att hantera återförsök, vilket påverkar din upplevelse under migreringen.
Du hittar funktionen För återförsök på serversidan på bladet Funktioner i Azure Cosmos DB-portalen
Och om den är Inaktiverad rekommenderar vi att du aktiverar den enligt nedan
Välj rätt ursprungligt MongoDB-verktyg
- mongoexport/mongoimport är det bästa migreringsverktygen för migrering av en delmängd av MongoDB-databasen.
- mongoexport exporterar dina befintliga data till en JSON- eller CSV-fil som kan läsas av människor. mongoexport tar ett argument som anger delmängden av dina befintliga data som ska exporteras.
- mongoimport öppnar en JSON- eller CSV-fil och infogar innehållet i måldatabasinstansen (Azure Cosmos DB i det här fallet.).
- Observera att JSON och CSV inte är ett kompakt format. du kan debiteras för höga nätverksavgifter eftersom mongoimport skickar data till Azure Cosmos DB.
- mongodump/mongorestore är det bästa migreringsverktygen för migrering av hela MongoDB-databasen. Det kompakta BSON-formatet gör det mer effektivt att använda nätverksresurser när data infogas i Azure Cosmos DB.
- mongodump exporterar dina befintliga data som en BSON-fil.
- mongorestore importerar din BSON-fildump till Azure Cosmos DB.
- Om du bara har en liten JSON-fil som du vill importera till Azure Cosmos DB för MongoDB är mongoimport-verktyget en snabb lösning för att mata in data.
Samla in autentiseringsuppgifter för Azure Cosmos DB för MongoDB
Azure Cosmos DB for MongoDB tillhandahåller kompatibla autentiseringsuppgifter för åtkomst som inbyggda MongoDB-verktyg kan använda. Du måste ha dessa åtkomstautentiseringsuppgifter till hands för att kunna migrera data till Azure Cosmos DB för MongoDB. Så här hittar du dessa autentiseringsuppgifter:
Öppna Azure-portalen
Gå till ditt Azure Cosmos DB för MongoDB-konto
I det vänstra navigeringsfältet väljer du bladet Anslutningssträng och du bör se en visning som liknar nedanstående:
- HOST – Azure Cosmos DB-slutpunkten fungerar som ett MongoDB-värdnamn
- PORT – när inbyggda MongoDB-verktyg ansluter till Azure Cosmos DB måste du uttryckligen ange den här porten
- USERNAME – prefixet för Azure Cosmos DB-slutpunktens domännamn fungerar som MongoDB-användarnamn
- PASSWORD – Huvudnyckeln för Azure Cosmos DB fungerar som MongoDB-lösenord
- Observera dessutom det SSL-fält som är
true
– det inbyggda MongoDB-verktyget måste aktivera SSL när du skriver data till Azure Cosmos DB
Utföra migreringen
- Välj vilka databaser och samlingar du vill migrera. I det här exemplet migrerar vi frågesamlingen i edx-databasen från MongoDB till Azure Cosmos DB.
Resten av det här avsnittet vägleder dig genom att använda de verktyg du valde i föregående avsnitt.
mongoexport/mongoimport
Om du vill exportera data från MongoDB-källinstansen öppnar du en terminal på MongoDB-instansdatorn. Om det är en Linux-dator skriver du
mongoexport --host HOST:PORT --authenticationDatabase admin -u USERNAME -p PASSWORD --db edx --collection query --out edx.json
I windows blir
mongoexport.exe
den körbara filen . VÄRD, PORT, ANVÄNDARNAMN och LÖSENORD bör fyllas i baserat på egenskaperna för din befintliga MongoDB-databasinstans.Du kan också välja att endast exportera en delmängd av MongoDB-datauppsättningen. Ett sätt att göra detta är genom att lägga till ytterligare ett filterargument:
mongoexport --host HOST:PORT --authenticationDatabase admin -u USERNAME -p PASSWORD --db edx --collection query --out edx.json --query '{"field1":"value1"}'
Endast dokument som matchar filtret
{"field1":"value1"}
exporteras.När du kör anropet bör du se att en
edx.json
fil skapas:Du kan använda samma terminal för att importera
edx.json
till Azure Cosmos DB. Om du körmongoimport
på en Linux-dator skriver dumongoimport --host HOST:PORT -u USERNAME -p PASSWORD --db edx --collection importedQuery --ssl --type json --writeConcern="{w:0}" --file edx.json
I Windows blir
mongoimport.exe
den körbara filen . VÄRD, PORT, ANVÄNDARNAMN och LÖSENORD bör fyllas i baserat på de Azure Cosmos DB-autentiseringsuppgifter som du samlade in tidigare.Övervaka terminalutdata från mongoimport. Du bör se att den skriver ut textrader till terminalen som innehåller uppdateringar om migreringsstatusen:
Granska slutligen Azure Cosmos DB för att verifiera att migreringen lyckades. Öppna Azure Cosmos DB-portalen och gå till Datautforskaren. Du bör se (1) att en edx-databas med en importeradQuery-samling har skapats, och (2) om du bara exporterade en delmängd data bör importedQuery endast innehålla dokument som matchar den önskade delmängden av data. I exemplet nedan matchade endast ett dokument filtret
{"field1":"value1"}
:
mongodump/mongorestore
Om du vill skapa en BSON-datadumpning av mongoDB-instansen öppnar du en terminal på MongoDB-instansdatorn. Om det är en Linux-dator skriver du
mongodump --host HOST:PORT --authenticationDatabase admin -u USERNAME -p PASSWORD --db edx --collection query --ssl --out edx-dump
VÄRD, PORT, ANVÄNDARNAMN och LÖSENORD bör fyllas i baserat på egenskaperna för din befintliga MongoDB-databasinstans. Du bör se att en
edx-dump
katalog skapas och att katalogstrukturenedx-dump
i återskapar resurshierarkin (databas- och samlingsstrukturen) för din MongoDB-källinstans. Varje samling representeras av en BSON-fil:Du kan använda samma terminal för att återställa innehållet
edx-dump
i till Azure Cosmos DB. Om du körmongorestore
på en Linux-dator skriver dumongorestore --host HOST:PORT --authenticationDatabase admin -u USERNAME -p PASSWORD --db edx --collection importedQuery --writeConcern="{w:0}" --ssl edx-dump/edx/query.bson
I Windows blir
mongorestore.exe
den körbara filen . VÄRD, PORT, ANVÄNDARNAMN och LÖSENORD bör fyllas i baserat på de Azure Cosmos DB-autentiseringsuppgifter som du samlade in tidigare.Övervaka terminalutdata från mongorestore. Du bör se att den skriver ut rader till terminaluppdateringen om migreringsstatusen:
Granska slutligen Azure Cosmos DB för att verifiera att migreringen lyckades. Öppna Azure Cosmos DB-portalen och gå till Datautforskaren. Du bör se (1) att en edx-databas med en importeradQuery-samling har skapats och (2) importedQuery bör innehålla hela datamängden från källsamlingen:
Optimering efter migrering
När du har migrerat data som lagras i MongoDB-databasen till Azure Cosmos DB:s API för MongoDB kan du ansluta till Azure Cosmos DB och hantera data. Du kan också utföra andra optimeringssteg efter migreringen, till exempel optimera indexeringsprincipen, uppdatera standardkonsekvensnivån eller konfigurera global distribution för ditt Azure Cosmos DB-konto. Mer information finns i artikeln om optimering efter migreringen.
Ytterligare resurser
- Azure Cosmos DB-tjänstinformation
- Dokumentation om MongoDB-databasverktyg
- Försöker du planera kapacitet för en migrering till Azure Cosmos DB?
- Om allt du vet är antalet virtuella kärnor och servrar i ditt befintliga databaskluster läser du om att uppskatta enheter för begäranden med virtuella kärnor eller virtuella kärnor
- Om du känner till vanliga begärandefrekvenser för din aktuella databasarbetsbelastning kan du läsa om att uppskatta enheter för begäranden med azure Cosmos DB-kapacitetshanteraren
Nästa steg
- Se fler scenarier i migreringsvägledningen i Microsofts Guide för databasmigrering.