Voormigratiestappen voor gegevensmigraties van MongoDB naar Azure Cosmos DB voor MongoDB

VAN TOEPASSING OP: MongoDB

Belangrijk

Lees deze volledige handleiding voordat u de stappen voorafgaand aan de migratie uitvoert.

Deze premigratiehandleiding voor MongoDB maakt deel uit van de reeks over MongoDB-migratie. De kritieke MongoDB-migratiestappen zijn premigratie, migratie en postmigratie, zoals wordt weergegeven in deze handleiding.

Diagram of the migration steps from pre to post migration.

Overzicht van premigratie

Het is van cruciaal belang om bepaalde planningen en besluitvorming vooraf uit te voeren over uw migratie voordat u gegevens daadwerkelijk verplaatst. Dit eerste besluitvormingsproces is de 'premigratie'.

Het doel van de premigratie is het volgende:

  1. Zorg ervoor dat u Azure Cosmos DB instelt om te voldoen aan de vereisten van uw toepassing en
  2. Plan hoe u de migratie uitvoert.

Volg deze stappen om een grondige premigratie uit te voeren

  1. Ontdek uw bestaande MongoDB-resources en evalueer de gereedheid van uw bestaande MongoDB-resources voor gegevensmigratie
  2. Uw bestaande MongoDB-resources toewijzen aan nieuwe Azure Cosmos DB-resources
  3. Plan de logistiek van het migratieproces end-to-end voordat u de volledige gegevensmigratie start

Voer vervolgens uw migratie uit in overeenstemming met uw premigratieplan.

Voer ten slotte de kritieke stappen na de migratie uit van cut-over en optimalisatie.

Alle bovenstaande stappen zijn essentieel voor een geslaagde migratie.

Wanneer u een migratie plant, raden we u aan waar mogelijk op resourceniveau te plannen.

Evaluatie vóór migratie

De eerste stap vóór de migratie is het detecteren van uw bestaande MongoDB-resources en het beoordelen van de gereedheid van uw resources voor migratie.

Detectie omvat het maken van een uitgebreide lijst met de bestaande resources (databases of verzamelingen) in uw MongoDB-gegevensomgeving.

Evaluatie omvat het bepalen of u de functies en syntaxis gebruikt die worden ondersteund. Ook moet u ervoor zorgen dat u zich houdt aan de limieten en quota. Het doel van deze fase is om een lijst met incompatibiliteit en waarschuwingen te maken, indien van toepassing. Nadat u de evaluatieresultaten hebt ontvangen, kunt u proberen de bevindingen aan te pakken tijdens de rest van de migratieplanning.

Er zijn drie manieren om de evaluatie vóór de migratie te voltooien. U wordt aangeraden de Azure Cosmos DB-migratie voor MongoDB-extensie te gebruiken.

Migratie van Azure Cosmos DB voor MongoDB-extensie

Met de Azure Cosmos DB-migratie voor MongoDB-extensie in Azure Data Studio kunt u een MongoDB-workload evalueren voor migratie naar Azure Cosmos DB voor MongoDB. U kunt deze extensie gebruiken om een end-to-end evaluatie uit te voeren op uw workload en de acties te ontdekken die u mogelijk moet uitvoeren om uw workloads naadloos te migreren in Azure Cosmos DB. Tijdens de evaluatie van een MongoDB-eindpunt rapporteert de extensie alle gedetecteerde resources.

Notitie

U wordt aangeraden de ondersteunde functies en syntaxis, limieten en quota van Azure Cosmos DB in detail te doorlopen en een proof-of-concept uit te voeren voordat de daadwerkelijke migratie wordt uitgevoerd.

Handmatige detectie (verouderd)

U kunt ook een spreadsheet voor migratie van gegevensomgevingen maken. Het doel van dit spreadsheet is om uw productiviteit te verbeteren en u te helpen de migratie van end-to-end te plannen en te gebruiken als een traceringsdocument tijdens het migratieproces.

  • Dit blad bevat een uitgebreide lijst met de bestaande resources (databases of verzamelingen) in uw MongoDB-gegevensdomein.
  • Het werkblad moet worden gestructureerd als een record van uw resources voor gegevensomgevingen, in lijstvorm.
  • Elke rij komt overeen met een resource (database of verzameling).
  • Elke kolom komt overeen met een eigenschap van de resource; begin met ten minste de naam en de gegevensgrootte (GB) als kolommen.
  • Wanneer u door deze handleiding doorloopt, bouwt u dit spreadsheet in een traceringsdocument voor uw end-to-end migratieplanning en voegt u indien nodig kolommen toe.

Hier volgen enkele hulpprogramma's die u kunt gebruiken voor het detecteren van resources:

Doorloop de spreadsheet en controleer elke verzameling op basis van de ondersteunde functies en syntaxis, en azure Cosmos DB-limieten en -quota in detail.

Hulpprogramma Database Migration Assistant (verouderd)

Notitie

Database Migration Assistant is een verouderd hulpprogramma dat u helpt bij de stappen vóór de migratie. U wordt aangeraden de Azure Cosmos DB-migratie voor MongoDB-extensie te gebruiken voor alle stappen vóór de migratie.

U kunt het hulpprogramma Database Migration Assistant (DMA) gebruiken om u te helpen bij de stappen vóór de migratie.

Toewijzing vóór migratie

Nu de detectie- en evaluatiestappen zijn voltooid, bent u klaar met de MongoDB-zijde van de vergelijking. Nu is het tijd om de Azure Cosmos DB-kant van de vergelijking te plannen. Hoe wilt u uw Azure Cosmos DB-resources voor productie instellen en configureren? Voer uw planning uit op resourceniveau . Dit betekent dat u de volgende kolommen aan uw plannings spreadsheet moet toevoegen:

  • Azure Cosmos DB-toewijzing
  • Shardsleutel
  • Gegevensmodel
  • Toegewezen versus gedeelde doorvoer

Meer informatie vindt u in de volgende secties.

Capaciteitsplanning

Wilt u capaciteitsplanning uitvoeren voor een migratie naar Azure Cosmos DB?

Overwegingen bij het gebruik van de API van Azure Cosmos DB voor MongoDB

Voordat u uw Azure Cosmos DB-gegevensomgeving plant, moet u de volgende Azure Cosmos DB-concepten begrijpen:

  • Capaciteitsmodel: Databasecapaciteit in Azure Cosmos DB is gebaseerd op een model op basis van doorvoer. Dit model is gebaseerd op aanvraageenheden per seconde. Dit is een eenheid die het aantal databasebewerkingen vertegenwoordigt dat op basis van een verzameling per seconde kan worden uitgevoerd. Deze capaciteit kan worden toegewezen op database- of verzamelingsniveau en kan worden ingericht op een toewijzingsmodel of met behulp van de ingerichte doorvoer voor automatisch schalen.
  • Aanvraageenheden: elke databasebewerking heeft een bijbehorende kosten voor aanvraageenheden (RU's) in Azure Cosmos DB. Wanneer de aanvraageenheden worden uitgevoerd, worden de aanvraageenheden afgetrokken van het niveau van de beschikbare aanvraageenheden op een bepaalde seconde. Als voor een aanvraag meer RU's nodig zijn dan de momenteel toegewezen RU/s, zijn er twee opties om het probleem op te lossen: verhoog het aantal RU's of wacht tot de volgende seconde begint en voer de bewerking vervolgens opnieuw uit.
  • Elastische capaciteit: de capaciteit voor een bepaalde verzameling of database kan op elk gewenst moment worden gewijzigd. Dankzij deze flexibiliteit kan de database zich elastisch aanpassen aan de doorvoervereisten van uw workload.
  • Automatische sharding: Azure Cosmos DB biedt een systeem voor automatische partitionering waarvoor alleen een shard (of een partitiesleutel) is vereist. Het mechanisme voor automatische partitionering wordt gedeeld in alle Azure Cosmos DB-API's en biedt naadloze gegevens en tijdens het schalen via horizontale distributie.

De Azure Cosmos DB-gegevensomgeving plannen

Ontdek welke Azure Cosmos DB-resources u maakt. Voor dit proces moet u uw spreadsheet voor gegevensomgevingsmigratie doorlopen en elke bestaande MongoDB-resource toewijzen aan een nieuwe Azure Cosmos DB-resource.

  • Verwacht dat elke MongoDB-database een Azure Cosmos DB-database wordt.
  • Verwacht dat elke MongoDB-verzameling een Azure Cosmos DB-verzameling wordt.
  • Kies een naamconventie voor uw Azure Cosmos DB-resources. Het behouden van dezelfde resourcenamen is meestal een goede keuze, tenzij er wijzigingen zijn in de structuur van databases en verzamelingen.
  • Bepaal of u shard- of niet-geharde verzamelingen gebruikt in Azure Cosmos DB. De limiet voor niet-geharde verzameling is 20 GB. Sharding helpt daarentegen horizontale schaal te bereiken die essentieel is voor de prestaties van veel workloads.
  • Als u shard-verzamelingen gebruikt, moet u er niet van uitgaan dat de shardsleutel van de MongoDB-verzameling uw Azure Cosmos DB-containerpartitiesleutel wordt. Stel niet dat de documentstructuur van uw bestaande MongoDB-gegevensmodel hetzelfde model moet zijn dat u in Azure Cosmos DB gebruikt.
    • Shardsleutel is de belangrijkste instelling voor het optimaliseren van de schaalbaarheid en prestaties van Azure Cosmos DB, en het modelleren van gegevens is de tweede belangrijkste. Beide instellingen zijn onveranderbaar en kunnen niet worden gewijzigd zodra ze zijn ingesteld; Daarom is het zeer belangrijk om ze in de planningsfase te optimaliseren. Volg de richtlijnen in de sectie Onveranderbare beslissingen voor meer informatie.
  • In Azure Cosmos DB worden bepaalde MongoDB-verzamelingstypen, zoals beperkte verzamelingen, niet herkend. Voor deze resources maakt u gewoon normale Azure Cosmos DB-verzamelingen.
  • Azure Cosmos DB heeft twee eigen verzamelingstypen: gedeelde en toegewezen doorvoer. Gedeelde versus toegewezen doorvoer is een andere kritieke, onveranderbare beslissing, die essentieel is om te maken in de planningsfase. Volg de richtlijnen in de sectie Onveranderbare beslissingen voor meer informatie.

Onveranderbare beslissingen

De volgende configuratieopties voor Azure Cosmos DB kunnen niet worden gewijzigd of ongedaan worden gemaakt nadat u een Azure Cosmos DB-resource hebt gemaakt; Daarom is het belangrijk om deze configuratiekeuzes goed te krijgen tijdens de planning voorafgaand aan de migratie, voordat u alle migraties start:

Eigendomskosten

Doorvoer schatten

  • In Azure Cosmos DB wordt de doorvoer vooraf ingericht en gemeten in aanvraageenheden (RU's) per seconde. In tegenstelling tot VM's of on-premises servers zijn RU's op elk gewenst moment eenvoudig omhoog en omlaag te schalen. U kunt het aantal ingerichte RU's direct wijzigen. Zie Aanvraageenheden in Azure Cosmos DB voor meer informatie.

  • U kunt de Azure Cosmos DB-capaciteitscalculator gebruiken om het aantal aanvraageenheden te bepalen dat u moet gebruiken. Dit nummer is gebaseerd op de configuratie van uw databaseaccount, de hoeveelheid gegevens, de documentgrootte en de vereiste lees- en schrijfbewerkingen per seconde.

  • Hieronder volgen belangrijke factoren die van invloed zijn op het aantal vereiste RU's:

    • Documentgrootte: Naarmate de grootte van een item/document toeneemt, neemt het aantal verbruikte RU's voor het lezen of schrijven van het item/document ook toe.

    • Aantal documenteigenschappen:het aantal verbruikte RU's voor het maken of bijwerken van een document is gerelateerd aan het aantal, de complexiteit en de lengte van de eigenschappen. U kunt het verbruik van de aanvraageenheid voor schrijfbewerkingen verminderen door het aantal geïndexeerde eigenschappen te beperken.

    • Querypatronen: De complexiteit van een query is van invloed op het aantal aanvraageenheden dat de query verbruikt.

  • De beste manier om inzicht te krijgen in de kosten van query's is door voorbeeldgegevens in Azure Cosmos DB te gebruiken en voorbeeldquery's uit te voeren vanuit de MongoDB-shell met behulp van de getLastRequestStastistics opdracht om de aanvraagkosten op te halen, waarmee het aantal verbruikte RU's wordt uitgevoerd:

    db.runCommand({getLastRequestStatistics: 1})
    

    *Met deze opdracht wordt een JSON-document uitgevoerd dat vergelijkbaar is met het volgende voorbeeld:

    {
      "_t": "GetRequestStatisticsResponse",
      "ok": 1,
      "CommandName": "find",
      "RequestCharge": 10.1,
      "RequestDurationInMilliSeconds": 7.2
    }
    
  • U kunt ook de diagnostische instellingen gebruiken om inzicht te hebben in de frequentie en patronen van de query's die worden uitgevoerd op Azure Cosmos DB. De resultaten van de diagnostische logboeken kunnen worden verzonden naar een opslagaccount, een Event Hubs-exemplaar of Azure Log Analytics.

Planning van logistiek vóór migratie

Nu u ten slotte een overzicht hebt van uw bestaande gegevensomgeving en een ontwerp voor uw nieuwe Azure Cosmos DB-gegevensomgeving, bent u klaar om te plannen hoe u uw migratieproces end-to-end uitvoert. Nogmaals, voer uw planning uit op resourceniveau en voeg kolommen toe aan uw spreadsheet om de logistieke dimensies in deze sectie vast te leggen.

Uitvoeringslogistiek

  • Wijs verantwoordelijkheid toe voor het migreren van elke bestaande resource van MongoDB naar Azure Cosmos DB. Hoe u uw teambronnen toepast om uw migratie naar voltooiing te herderen, is aan u. Voor kleine migraties kunt u één team de volledige migratie laten starten en de voortgang ervan controleren. Voor grotere migraties kunt u verantwoordelijkheid toewijzen aan teamleden per resource voor het migreren en bewaken van die resource.

  • Nadat u de verantwoordelijkheid voor het migreren van uw resources hebt toegewezen, moet u nu de juiste migratiehulpprogramma('s) kiezen voor migratie. Voor kleine migraties kunt u mogelijk één migratiehulpprogramma gebruiken, zoals een systeemeigen MongoDB-hulpprogramma of Azure DMS om al uw resources in één shot te migreren. Voor grotere migraties of migraties met speciale vereisten kunt u migratiehulpprogramma's kiezen met een granulariteit per resource.

    • Voordat u plant welke migratiehulpprogramma's moeten worden gebruikt, raden we u aan om uzelf te laten kennismaken met de beschikbare opties. De Azure Database Migration Service voor de API van Azure Cosmos DB voor MongoDB biedt een mechanisme waarmee gegevensmigratie wordt vereenvoudigd door een volledig beheerd hostingplatform, opties voor migratiebewaking en automatische beperkingsafhandeling te bieden. Hier volgt een volledige lijst met opties:

      Migratietype Oplossing Overwegingen
      Online Azure Database Migration Service • Maakt gebruik van de bulkexecutorbibliotheek voor Azure Cosmos DB
      • Geschikt voor grote gegevenssets en zorgt voor het repliceren van live wijzigingen
      • Werkt alleen met andere MongoDB-bronnen
      Offline Azure Database Migration Service • Maakt gebruik van de bulkexecutorbibliotheek voor Azure Cosmos DB
      • Geschikt voor grote gegevenssets en zorgt voor het repliceren van live wijzigingen
      • Werkt alleen met andere MongoDB-bronnen
      Offline Azure Data Factory • Maakt gebruik van de bulkexecutorbibliotheek voor Azure Cosmos DB
      • Geschikt voor grote gegevenssets
      • Eenvoudig in te stellen en ondersteunt meerdere bronnen
      • Gebrek aan controlepunten betekent dat elk probleem tijdens de migratie een herstart van het hele migratieproces vereist
      • Gebrek aan een wachtrij met dode letters betekent dat een paar onjuiste bestanden het hele migratieproces kunnen stoppen
      • Heeft aangepaste code nodig om de leesdoorvoer voor bepaalde gegevensbronnen te verhogen
      Offline Bestaande Mongo Tools (mongodump, mongorestore, Studio3T) • Eenvoudig in te stellen en te integreren
      • Heeft aangepaste verwerking nodig voor beperkingen
      Offline/online Azure Databricks en Spark • Volledige controle over migratiesnelheid en gegevenstransformatie
      • Vereist aangepaste codering
    • Als uw resource een offlinemigratie tolereert, gebruikt u dit diagram om het juiste migratiehulpprogramma te kiezen:

      Diagram of using offline migration tools based on the size of the tool.

    • Als uw resource een onlinemigratie vereist, gebruikt u dit diagram om het juiste migratiehulpprogramma te kiezen:

      Diagram of using online migration tools based on preference for turnkey or custom solutions.

    • Bekijk een overzicht en demo van de video over migratieoplossingen .

  • Zodra u migratiehulpprogramma's voor elke resource hebt gekozen, is de volgende stap het prioriteren van de resources die u gaat migreren. Een goede prioriteitstelling kan helpen uw migratie op schema te houden. Een goede gewoonte is om prioriteit te geven aan het migreren van deze resources, waarvoor de meeste tijd nodig is om te worden verplaatst; Het migreren van deze resources brengt eerst de grootste voortgang naar voltooiing. Aangezien deze tijdrovende migraties doorgaans meer gegevens bevatten, zijn ze bovendien resource-intensief voor het migratiehulpprogramma en zijn ze daarom eerder geneigd om eventuele problemen met uw migratiepijplijn al vroeg bloot te stellen. Met deze procedure wordt de kans geminimaliseerd dat uw planning afschuift vanwege eventuele problemen met uw migratiepijplijn.

  • Plan hoe u de voortgang van de migratie bewaakt zodra deze is gestart. Als u de inspanningen voor gegevensmigratie tussen een team coördineert, plant u ook regelmatig een frequentie van teamsynchronisaties, zodat u een uitgebreid overzicht hebt van hoe de migraties met hoge prioriteit gaan.

Ondersteunde migratiescenario 's

De beste keuze van het Hulpprogramma voor MongoDB-migratie is afhankelijk van uw migratiescenario.

Typen migraties

Hier volgt een lijst met compatibele hulpprogramma's voor elk migratiescenario:

Bron Doel Aanbeveling voor proces
• On-premises MongoDB-cluster
• MongoDB op IaaS VM-cluster
• MongoDB Atlas-cluster - Offline
Mongo-API voor Azure Cosmos DB • <Gegevens van 10 GB: systeemeigen MongoDB-hulpprogramma's
• <Gegevens van 1 TB: Azure DMS
• >1 TB gegevens: Spark
• On-premises MongoDB-cluster
• MongoDB op IaaS VM-cluster
• MongoDB Atlas-cluster - Online
Mongo-API voor Azure Cosmos DB • <Gegevens van 1 TB: Azure DMS
• >Gegevens van 1 TB: Spark + Mongo Changestream
• Het schema tijdens de migratie moet worden gewijzigd
Meer flexibiliteit nodig dan bovengenoemde hulpprogramma's
Mongo-API voor Azure Cosmos DB • ADF is flexibeler dan DMS, ondersteunt schemawijzigingen tijdens de migratie en ondersteunt de meeste combinaties van bron/bestemming
• DMS is beter qua schaal (bijvoorbeeld snellere migratie)
• JSON-bestand Mongo-API voor Azure Cosmos DB • Systeemeigen MongoDB-hulpprogramma's specifiek mongoimport
• CSV-bestand Mongo-API voor Azure Cosmos DB • Systeemeigen MongoDB-hulpprogramma's specifiek mongoimport
• BSON-bestand Mongo-API voor Azure Cosmos DB • Systeemeigen MongoDB-hulpprogramma's specifiek mongorestore

Ondersteuning voor hulpprogramma's voor MongoDB-versies

Aangezien u migreert vanaf een bepaalde MongoDB-versie, worden de ondersteunde hulpprogramma's voor elke versie hier opgenomen:

MongoDB-bronversie Doelversie van Azure Cosmos DB voor MongoDB Ondersteunde hulpprogramma's Niet-ondersteunde hulpprogramma's
<2.x, >4.0 3.2, 3.6, 4.0 Systeemeigen MongoDB-hulpprogramma's, Spark DMS, ADF
3.2, 3.6, 4.0 3.2, 3.6, 4.0 Systeemeigen MongoDB-hulpprogramma's, DMS, ADF, Spark Geen

Postmigratie

Besteed in de fase vóór de migratie enige tijd om te plannen welke stappen u moet uitvoeren voor app-migratie en optimalisatie na de migratie.

  • In de fase na de migratie voert u een cutover van uw toepassing uit om Azure Cosmos DB te gebruiken in plaats van uw bestaande MongoDB-gegevensomgeving.
  • Maak uw best om indexering, wereldwijde distributie, consistentie en andere veranderlijke Azure Cosmos DB-eigenschappen per resourceniveau te plannen. Deze Configuratie-instellingen van Azure Cosmos DB kunnen echter later worden gewijzigd. U kunt daarom later wijzigingen aanbrengen in deze instellingen. U past deze onveranderbare configuraties na de migratie toe.
  • Zie de stappen voor optimalisatie na migratie bij het gebruik van de API van Azure Cosmos DB voor MongoDB voor een postmigratiehandleiding.

Volgende stappen