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 hele handleiding voordat u de migratiestappen uitvoert.

Deze MongoDB-migratiehandleiding maakt deel uit van de reeks over MongoDB-migratie. De essentiële MongoDB-migratiestappen zijn pre-migratie, migratie en post-migratie, zoals hieronder wordt weergegeven.

Diagram van migratiestappen.

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 AZURE Cosmos DB-API 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 mogelijk maken. 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 verbindingsreeksen, kunt u de hulpprogramma's overal uitvoeren, maar we raden u aan deze hulpprogramma's uit te voeren binnen 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.
  • Meld u aan bij uw MongoDB-exemplaar
    • Download en installeer de systeemeigen MongoDB-hulpprogramma's via deze koppeling.
      • Zorg ervoor dat de versie van uw systeemeigen MongoDB-hulpprogramma's 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 de juiste hulpprogrammaversie voor respectievelijk MongoDB en Azure Cosmos DB voor MongoDB.
    • Voeg een gebruiker met readWrite machtigingen toe, tenzij er al een bestaat. Verderop in deze zelfstudie geeft u deze gebruikersnaam/het wachtwoord op voor de hulpprogramma's mongoexport en mongodump .

Nieuwe pogingen aan de serverzijde van Azure Cosmos DB configureren

Klanten die migreren van MongoDB naar Azure Cosmos DB, profiteren van mogelijkheden voor resourcebeheer, die de mogelijkheid garanderen om volledig gebruik te maken van uw ingerichte RU/s van doorvoer. Azure Cosmos DB kan een bepaalde aanvraag tijdens de migratie beperken als die aanvraag de in de container ingerichte RU/s overschrijdt; vervolgens moet die aanvraag opnieuw worden geprobeerd. De retourtijd die betrokken is bij de netwerkhop tussen het migratiehulpprogramma en Azure Cosmos DB is van invloed op de totale reactietijd van die aanvraag; bovendien verwerken systeemeigen MongoDB-hulpprogramma's mogelijk geen nieuwe pogingen. Met de functie 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 een positieve invloed heeft op uw ervaring tijdens de migratie.

U vindt de mogelijkheid voor opnieuw proberen aan de serverzijde op de blade Functies van de Azure Cosmos DB-portal

Schermopname van de functie MongoDB SSR.

En als deze is uitgeschakeld, raden we u aan deze in te schakelen, zoals hieronder wordt weergegeven

Schermopname van MongoDB SSR inschakelen.

Het juiste systeemeigen MongoDB-hulpprogramma kiezen

Diagram van het selecteren van het beste systeemeigen MongoDB-hulpprogramma.

  • 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 dat de subset aangeeft van de bestaande gegevens die moeten worden geëxporteerd.
    • 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 omdat Mongoimport gegevens naar Azure Cosmos DB verzendt.
  • mongodump/mongorestore is de beste 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.
  • Terzijde: als u gewoon een klein JSON-bestand hebt dat u wilt importeren in Azure Cosmos DB voor MongoDB, is het hulpprogramma mongoimport 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 systeemeigen MongoDB-hulpprogramma's kunnen gebruiken. 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:

  1. Open de Azure Portal

  2. Navigeer naar uw Azure Cosmos DB voor MongoDB-account

  3. Selecteer in het linkernavigatievenster de blade Verbindingsreeks . Als het goed is, ziet u een weergave die er ongeveer als volgt uitziet:

    Schermopname van Azure Cosmos DB-referenties.

    • HOST : het Azure Cosmos DB-eindpunt fungeert als een MongoDB-hostnaam
    • POORT: wanneer systeemeigen MongoDB-hulpprogramma's verbinding maken met Azure Cosmos DB, moet u deze poort expliciet opgeven
    • USERNAME : het voorvoegsel van de Azure Cosmos DB-eindpuntdomeinnaam fungeert als de MongoDB-gebruikersnaam
    • WACHTWOORD: de Azure Cosmos DB-hoofdsleutel fungeert als het MongoDB-wachtwoord
    • Let ook op het SSL-veld dat is true : het systeemeigen MongoDB-hulpprogramma moet SSL inschakelen bij het schrijven van gegevens naar Azure Cosmos DB

De migratie uitvoeren

  1. Kies welke database(s) en verzameling(en) u wilt migreren. In dit voorbeeld migreren we de queryverzameling in de edx-database van MongoDB naar Azure Cosmos DB.

In de rest van deze sectie wordt u begeleid bij het gebruik van de twee hulpprogramma's die u in de vorige sectie hebt geselecteerd.

mongoexport/mongoimport

  1. Als u de gegevens uit het MongoDB-bronexemplaren wilt exporteren, opent u een terminal op de MongoDB-exemplaarcomputer. Als het een Linux-machine is, typt u

    mongoexport --host HOST:PORT --authenticationDatabase admin -u USERNAME -p PASSWORD --db edx --collection query --out edx.json
    

    In Windows is mongoexport.exehet 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:

    Schermopname van mongoexport-aanroep.

  2. U kunt dezelfde terminal gebruiken om te importeren edx.json in Azure Cosmos DB. Als u op mongoimport een Linux-computer werkt, typt u

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

    In Windows is mongoimport.exehet uitvoerbare bestand . HOST, PORT, USERNAME en PASSWORD moeten worden ingevuld op basis van de Azure Cosmos DB-referenties die u eerder hebt verzameld.

  3. Bewaak de terminaluitvoer van mongoimport. U ziet dat er regels tekst naar de terminal worden afgedrukt met updates over de migratiestatus:

    Schermopname van mongoimport-aanroep.

  4. Onderzoek 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 importedQuery-verzameling is gemaakt en (2) als u slechts een subset met gegevens hebt geëxporteerd, moet importedQueryalleen 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"}:

    Schermopname van Azure Cosmos DB-gegevensverificatie.

mongodump/mongorestore

  1. Als u een BSON-gegevensdump van uw MongoDB-exemplaar wilt maken, opent u een terminal op de MongoDB-exemplaarcomputer. Als het een Linux-machine 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 van edx-dump de resourcehiërarchie (database en verzamelingsstructuur) van uw MongoDB-bronexemplaren reproduceert. Elke verzameling wordt vertegenwoordigd door een BSON-bestand:

    Schermopname van mongodump-aanroep.

  2. U kunt dezelfde terminal gebruiken om de inhoud van edx-dump te herstellen in Azure Cosmos DB. Als u op mongorestore een Linux-computer werkt, typt u

    mongorestore --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.exehet uitvoerbare bestand . HOST, PORT, USERNAME en PASSWORD moeten worden ingevuld op basis van de Azure Cosmos DB-referenties die u eerder hebt verzameld.

  3. Bewaak de terminaluitvoer van mongorestore. U ziet dat regels naar de terminal worden afgedrukt die worden bijgewerkt op basis van de migratiestatus:

    Schermopname van mongorestore-aanroep.

  4. Onderzoek 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 een edx-database met een geïmporteerdeQuery-verzameling is gemaakt en (2) importedQuery de volledige gegevensset uit de bronverzameling moet bevatten:

    Schermopname van het verifiëren van Azure Cosmos DB mongorestore-gegevens.

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

Volgende stappen

  • Bekijk de migratierichtlijnen voor aanvullende scenario's in de Handleiding voor migratie van Microsoft-databases.