Dela via


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.

Diagram över migreringssteg.

Ö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 hjälp av niska veze 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.

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

Skärmbild av funktionen MongoDB SSR.

Och om den är Inaktiverad rekommenderar vi att du aktiverar den enligt nedan

Skärmbild av Aktivera MongoDB SSR.

Välj rätt ursprungligt MongoDB-verktyg

Diagram över hur du väljer det bästa inbyggda MongoDB-verktyget.

  • 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:

  1. Öppna Azure-portalen

  2. Gå till ditt Azure Cosmos DB för MongoDB-konto

  3. I det vänstra navigeringsfältet väljer du bladet Anslutningssträng och du bör se en visning som liknar nedanstående:

    Skärmbild av autentiseringsuppgifter för Azure Cosmos DB.

    • 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

  1. 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

  1. 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.exeden 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:

    Skärmbild av mongoexport-anropet.

  2. Du kan använda samma terminal för att importera edx.json till Azure Cosmos DB. Om du kör mongoimport på en Linux-dator skriver du

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

    I Windows blir mongoimport.exeden 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.

  3. Övervaka terminalutdata från mongoimport. Du bör se att den skriver ut textrader till terminalen som innehåller uppdateringar om migreringsstatusen:

    Skärmbild av mongoimport-anrop.

  4. 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"}:

    Skärmbild av Azure Cosmos DB-dataverifiering.

mongodump/mongorestore

  1. 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 katalogstrukturen edx-dump i återskapar resurshierarkin (databas- och samlingsstrukturen) för din MongoDB-källinstans. Varje samling representeras av en BSON-fil:

    Skärmbild av mongodump-anrop.

  2. Du kan använda samma terminal för att återställa innehållet edx-dump i till Azure Cosmos DB. Om du kör mongorestore på en Linux-dator skriver du

    mongorestore --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.exeden 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.

  3. Övervaka terminalutdata från mongorestore. Du bör se att den skriver ut rader till terminaluppdateringen om migreringsstatusen:

    Skärmbild av mongorestore-anrop.

  4. 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:

    Skärmbild av verifiering av Mongorestore-data i Azure Cosmos DB.

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

Nästa steg