Zelfstudie: MongoDB offline migreren naar de API van Azure Cosmos DB voor MongoDB met behulp van systeemeigen MongoDB-hulpprogramma's
VAN TOEPASSING OP: MongoDB
Belangrijk
Lees deze volledige handleiding voordat u de migratiestappen uitvoert.
Deze MongoDB-migratiehandleiding maakt deel uit van de reeks over MongoDB-migratie. De kritieke MongoDB-migratiestappen zijn premigratie, migratie en postmigratie, zoals hieronder wordt weergegeven.
Overzicht van gegevensmigratie met behulp van systeemeigen MongoDB-hulpprogramma's
U kunt systeemeigen MongoDB-hulpprogramma's gebruiken om een offline (eenmalige) migratie van databases uit te voeren van een on-premises of cloudexemplaren van MongoDB naar de API van Azure Cosmos DB voor MongoDB.
In deze zelfstudie leert u het volgende:
- Kies het juiste systeemeigen MongoDB-hulpprogramma voor uw use-case
- De migratie uitvoeren.
- Houd de migratie in de gaten.
- Controleer of de migratie is geslaagd.
In deze zelfstudie migreert u een gegevensset in MongoDB die wordt gehost op een virtuele Azure-machine naar de API van Azure Cosmos DB voor MongoDB met behulp van systeemeigen MongoDB-hulpprogramma's. De systeemeigen MongoDB-hulpprogramma's zijn een set binaire bestanden die het bewerken van gegevens op een bestaand MongoDB-exemplaar vergemakkelijken. Omdat Azure Cosmos DB een API voor MongoDB beschikbaar maakt, kunnen de systeemeigen MongoDB-hulpprogramma's gegevens invoegen in Azure Cosmos DB. De focus van dit document ligt op het migreren van gegevens uit een MongoDB-exemplaar met behulp van mongoexport/mongoimport of mongodump/mongorestore. Omdat de systeemeigen hulpprogramma's verbinding maken met MongoDB met behulp van verbindingsreeks s, kunt u de hulpprogramma's overal uitvoeren, maar we raden u aan deze hulpprogramma's uit te voeren in hetzelfde netwerk als het MongoDB-exemplaar om firewallproblemen te voorkomen.
De systeemeigen MongoDB-hulpprogramma's kunnen gegevens alleen zo snel verplaatsen als de hosthardware toestaat; de systeemeigen hulpprogramma's kunnen de eenvoudigste oplossing zijn voor kleine gegevenssets waarbij de totale migratietijd geen probleem is. MongoDB Spark-connector, Azure Data Migration Service (DMS) of Azure Data Factory (ADF) kunnen betere alternatieven zijn als u een schaalbare migratiepijplijn nodig hebt.
Als u nog geen MongoDB-bron hebt ingesteld, raadpleegt u het artikel over het installeren en configureren van MongoDB op een Windows-VM in Azure.
Vereisten
Voor het voltooien van deze zelfstudie hebt u het volgende nodig:
- Voltooi de stappen voorafgaand aan de migratie, zoals het schatten van de doorvoer of het kiezen van een partitiesleutel en het indexeringsbeleid.
- Maak een Azure Cosmos DB voor MongoDB-account.
- Aanmelden bij uw MongoDB-exemplaar
- Download en installeer de systeemeigen MongoDB-hulpprogramma's via deze koppeling.
- Zorg ervoor dat uw systeemeigen MongoDB-hulpprogrammaversie overeenkomt met uw bestaande MongoDB-exemplaar.
- Als uw MongoDB-exemplaar een andere versie heeft dan Azure Cosmos DB voor MongoDB, installeert u beide systeemeigen mongoDB-hulpprogrammaversies en gebruikt u respectievelijk de juiste hulpprogrammaversie voor MongoDB en Azure Cosmos DB voor MongoDB.
- Voeg een gebruiker met
readWrite
machtigingen toe, tenzij er al een bestaat. Geef verderop in deze zelfstudie deze gebruikersnaam/wachtwoord op voor de hulpprogramma's mongoexport en mongodump .
- Download en installeer de systeemeigen MongoDB-hulpprogramma's via deze koppeling.
Nieuwe pogingen aan de serverzijde van Azure Cosmos DB configureren
Klanten die van MongoDB migreren naar Azure Cosmos DB profiteren van mogelijkheden voor resourcebeheer, waardoor de mogelijkheid wordt gegarandeerd om uw ingerichte RU/s van doorvoer volledig te gebruiken. Azure Cosmos DB kan een bepaalde aanvraag in de loop van de migratie beperken als die aanvraag de ingerichte RU/s van de container overschrijdt; dan moet die aanvraag opnieuw worden geprobeerd. De retourtijd die betrokken is bij de netwerkhop tussen het migratiehulpprogramma en Azure Cosmos DB heeft invloed op de totale reactietijd van die aanvraag; bovendien kunnen systeemeigen MongoDB-hulpprogramma's geen nieuwe pogingen verwerken. Met de functie Voor opnieuw proberen aan de serverzijde van Azure Cosmos DB kan de service foutcodes onderscheppen en opnieuw proberen met een veel lagere retourtijd, waardoor de reactietijden van aanvragen aanzienlijk worden verbeterd. Vanuit het perspectief van systeemeigen MongoDB-hulpprogramma's is de noodzaak om nieuwe pogingen af te handelen geminimaliseerd, wat uw ervaring tijdens de migratie positief zal beïnvloeden.
U vindt de mogelijkheid voor opnieuw proberen aan de serverzijde op de blade Functies van de Azure Cosmos DB-portal
En als het is uitgeschakeld, raden we u aan deze in te schakelen, zoals hieronder wordt weergegeven
Het juiste systeemeigen MongoDB-hulpprogramma kiezen
- mongoexport/mongoimport is het beste paar migratiehulpprogramma's voor het migreren van een subset van uw MongoDB-database.
- mongoexport exporteert uw bestaande gegevens naar een door mensen leesbaar JSON- of CSV-bestand. mongoexport gebruikt een argument waarin de subset van uw bestaande gegevens wordt opgegeven die u wilt exporteren.
- mongoimport opent een JSON- of CSV-bestand en voegt de inhoud in het doeldatabase-exemplaar in (In dit geval Azure Cosmos DB).)
- JSON en CSV zijn geen compacte indelingen; Er kunnen extra netwerkkosten in rekening worden gebracht wanneer mongoimport gegevens naar Azure Cosmos DB verzendt.
- mongodump/mongorestore is het beste paar migratiehulpprogramma's voor het migreren van uw hele MongoDB-database. De compacte BSON-indeling maakt efficiënter gebruik van netwerkresources wanneer de gegevens worden ingevoegd in Azure Cosmos DB.
- mongodump exporteert uw bestaande gegevens als een BSON-bestand.
- mongorestore importeert uw BSON-bestandsdump in Azure Cosmos DB.
- Als u gewoon een klein JSON-bestand hebt dat u wilt importeren in Azure Cosmos DB voor MongoDB, is het mongoimport-hulpprogramma een snelle oplossing voor het opnemen van de gegevens.
De Azure Cosmos DB voor MongoDB-referenties verzamelen
Azure Cosmos DB voor MongoDB biedt compatibele toegangsreferenties die door mongoDB systeemeigen hulpprogramma's kunnen worden gebruikt. U moet deze toegangsreferenties bij de hand hebben om gegevens te migreren naar Azure Cosmos DB voor MongoDB. Ga als volgt te werk om deze referenties te vinden:
Open Azure Portal
Navigeer naar uw Azure Cosmos DB voor MongoDB-account
Selecteer in het linkernavigatievenster de blade Verbindingsreeks en u ziet een weergave die vergelijkbaar is met de onderstaande:
- HOST : het Azure Cosmos DB-eindpunt fungeert als een MongoDB-hostnaam
- PORT : wanneer systeemeigen MongoDB-hulpprogramma's verbinding maken met Azure Cosmos DB, moet u deze poort expliciet opgeven
- USERNAME : het voorvoegsel van de Domeinnaam van het Azure Cosmos DB-eindpunt als de MongoDB-gebruikersnaam
- WACHTWOORD : de Hoofdsleutel van Azure Cosmos DB fungeert als mongoDB-wachtwoord
- Let ook op het SSL-veld .
true
Het systeemeigen MongoDB-hulpprogramma moet SSL inschakelen bij het schrijven van gegevens in Azure Cosmos DB
De migratie uitvoeren
- Kies welke database(s) en verzamelingen u wilt migreren. In dit voorbeeld migreren we de queryverzameling in de edx-database van MongoDB naar Azure Cosmos DB.
De rest van deze sectie begeleidt u bij het gebruik van de hulpprogramma's die u in de vorige sectie hebt geselecteerd.
mongoexport/mongoimport
Als u de gegevens wilt exporteren uit het MongoDB-bronexemplaren, opent u een terminal op de MongoDB-exemplaarcomputer. Als het een Linux-computer is, typt u
mongoexport --host HOST:PORT --authenticationDatabase admin -u USERNAME -p PASSWORD --db edx --collection query --out edx.json
In vensters is
mongoexport.exe
het uitvoerbare bestand. HOST, PORT, USERNAME en PASSWORD moeten worden ingevuld op basis van de eigenschappen van uw bestaande MongoDB-database-exemplaar.U kunt er ook voor kiezen om alleen een subset van de MongoDB-gegevensset te exporteren. Een manier om dit te doen, is door een extra filterargument toe te voegen:
mongoexport --host HOST:PORT --authenticationDatabase admin -u USERNAME -p PASSWORD --db edx --collection query --out edx.json --query '{"field1":"value1"}'
Alleen documenten die overeenkomen met het filter
{"field1":"value1"}
worden geëxporteerd.Nadat u de aanroep hebt uitgevoerd, ziet u dat er een
edx.json
bestand wordt geproduceerd:U kunt dezelfde terminal gebruiken om te importeren
edx.json
in Azure Cosmos DB. Als u op een Linux-computer werktmongoimport
, typt umongoimport --host HOST:PORT -u USERNAME -p PASSWORD --db edx --collection importedQuery --ssl --type json --writeConcern="{w:0}" --file edx.json
In Windows is
mongoimport.exe
het uitvoerbare bestand. Host, POORT, GEBRUIKERSNAAM en WACHTWOORD moeten worden ingevuld op basis van de Azure Cosmos DB-referenties die u eerder hebt verzameld.Bewaak de terminaluitvoer van mongoimport. U ziet dat er tekstregels naar de terminal worden afgedrukt met updates over de migratiestatus:
Controleer ten slotte Azure Cosmos DB om te controleren of de migratie is geslaagd. Open de Azure Cosmos DB-portal en navigeer naar Data Explorer. U ziet (1) dat er een edx-database met een geïmporteerdeQuery-verzameling is gemaakt en (2) als u alleen een subset met gegevens hebt geëxporteerd, moet geïmporteerdeQuery alleen documenten bevatten die overeenkomen met de gewenste subset van de gegevens. In het onderstaande voorbeeld komt slechts één document overeen met het filter
{"field1":"value1"}
:
mongodump/mongorestore
Als u een BSON-gegevensdump van uw MongoDB-exemplaar wilt maken, opent u een terminal op de MongoDB-exemplaarcomputer. Als het een Linux-computer is, typt u
mongodump --host HOST:PORT --authenticationDatabase admin -u USERNAME -p PASSWORD --db edx --collection query --ssl --out edx-dump
HOST, PORT, USERNAME en PASSWORD moeten worden ingevuld op basis van de eigenschappen van uw bestaande MongoDB-database-exemplaar. U ziet dat er een
edx-dump
map wordt geproduceerd en dat de mapstructuur vanedx-dump
de resourcehiërarchie (database en verzamelingsstructuur) van uw MongoDB-bronexemplaren wordt gereproduceerd. Elke verzameling wordt vertegenwoordigd door een BSON-bestand:U kunt dezelfde terminal gebruiken om de inhoud van
edx-dump
azure Cosmos DB te herstellen. Als u op een Linux-computer werktmongorestore
, typt umongorestore --host HOST:PORT --authenticationDatabase admin -u USERNAME -p PASSWORD --db edx --collection importedQuery --writeConcern="{w:0}" --ssl edx-dump/edx/query.bson
In Windows is
mongorestore.exe
het uitvoerbare bestand. Host, POORT, GEBRUIKERSNAAM en WACHTWOORD moeten worden ingevuld op basis van de Azure Cosmos DB-referenties die u eerder hebt verzameld.Bewaak de terminaluitvoer van mongorestore. U ziet dat er lijnen worden afgedrukt naar de terminal die wordt bijgewerkt over de migratiestatus:
Controleer ten slotte Azure Cosmos DB om te controleren of de migratie is geslaagd. Open de Azure Cosmos DB-portal en navigeer naar Data Explorer. U ziet (1) dat er een edx-database met een geïmporteerdeQuery-verzameling is gemaakt en (2) geïmporteerdeQuery moet de volledige gegevensset uit de bronverzameling bevatten:
Optimalisatie na migratie
Nadat u de gegevens die zijn opgeslagen in de MongoDB-database, hebt gemigreerd naar de Azure Cosmos DB voor MongoDB-API, kunt u verbinding maken met Azure Cosmos DB en de gegevens beheren. U kunt na de migratie ook andere optimalisatiestappen uitvoeren, zoals het indexeringsbeleid optimaliseren, het standaardconsistentieniveau bijwerken, of de globale distributie configureren voor uw Azure Cosmos DB-account. Zie het artikel Optimalisatie na migratie voor meer informatie.
Aanvullende bronnen
- Azure Cosmos DB-servicegegevens
- Documentatie voor Hulpprogramma's voor MongoDB-databases
- 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
Volgende stappen
- Lees de Microsoft-handleiding voor databasemigratie voor hulp bij andere migratiescenario's.