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.
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:
- Zorg ervoor dat u Azure Cosmos DB instelt om te voldoen aan de vereisten van uw toepassing en
- Plan hoe u de migratie uitvoert.
Volg deze stappen om een grondige premigratie uit te voeren
- Ontdek uw bestaande MongoDB-resources en evalueer de gereedheid van uw bestaande MongoDB-resources voor gegevensmigratie
- Uw bestaande MongoDB-resources toewijzen aan nieuwe Azure Cosmos DB-resources
- 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?
- Als alles wat u weet het aantal vCores en servers in uw bestaande databasecluster is, leest u meer over het schatten van aanvraageenheden met behulp van vCores of vCPU's
- Als u typische aanvraagtarieven voor uw huidige databaseworkload kent, leest u meer over het schatten van aanvraageenheden met behulp van azure Cosmos DB-capaciteitsplanner
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:
- Raadpleeg Partitionering en horizontaal schalen in Azure Cosmos DB om de beste shardsleutel te kiezen. Partitionering, ook wel Sharding genoemd, is een belangrijk aandachtspunt voordat gegevens worden gemigreerd. Azure Cosmos DB maakt gebruik van volledig beheerde partitionering om de capaciteit in een database te verhogen om te voldoen aan de vereisten voor opslag en doorvoer. Deze functie heeft geen hosting of configuratie van routeringsservers nodig.
- Op een vergelijkbare manier voegt de partitioneringsfunctie automatisch capaciteit toe en worden de gegevens dienovereenkomstig opnieuw verdeeld. Zie een partitiesleutel kiezen voor meer informatie over het kiezen van de juiste partitiesleutel voor uw gegevens.
- Volg de handleiding voor gegevensmodellering in Azure Cosmos DB om een gegevensmodel te kiezen.
- Volg de kosten voor ingerichte doorvoer optimaliseren in Azure Cosmos DB om te kiezen tussen toegewezen en gedeelde doorvoer voor elke resource die u migreert
- Gegevens modelleren en partitioneren in Azure Cosmos DB met behulp van een praktijkvoorbeeld is een praktijkvoorbeeld van sharding en gegevensmodellering om u te helpen bij het besluitvormingsproces
Eigendomskosten
- Maak een schatting van de eigendomskosten van uw nieuwe Azure Cosmos DB-resources met behulp van de Azure Cosmos DB-capaciteitscalculator.
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-bronnenOffline 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-bronnenOffline 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 verhogenOffline Bestaande Mongo Tools (mongodump, mongorestore, Studio3T) • Eenvoudig in te stellen en te integreren
• Heeft aangepaste verwerking nodig voor beperkingenOffline/online Azure Databricks en Spark • Volledige controle over migratiesnelheid en gegevenstransformatie
• Vereist aangepaste coderingAls uw resource een offlinemigratie tolereert, gebruikt u dit diagram om het juiste migratiehulpprogramma te kiezen:
Als uw resource een onlinemigratie vereist, gebruikt u dit diagram om het juiste migratiehulpprogramma te kiezen:
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.